User Tag List

Страница 4 из 13 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 124

Тема: Как организовать память для текстового редактора?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Вот я и говорю- назови plain текстовый редактор на Java/.NET, где используется хранение редактируемого текста в виде связных списков.
    я думаю что основная масса plain редакторов просто вызывает метод "редактируй мне этот буфер" и не парится

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А кто сказал, что необходимо блокировать все на время переброски данных? Что мешает заполнить буфер редактирования следующей строкой и дать пользователю его дальше редактировать? Например, редактирование на прерываниях, переброска- в основном режиме.
    фигасе, да такая схема будет в РАЗЫ сложнее любых буферов
    тем более что как я понимаю на целевом компе (специалист) вообще нет прерываний

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    я думаю что основная масса plain редакторов просто вызывает метод "редактируй мне этот буфер" и не парится
    Ну и как работает редактирование-то?

    Цитата Сообщение от esl Посмотреть сообщение
    фигасе, да такая схема будет в РАЗЫ сложнее любых буферов
    тем более что как я понимаю на целевом компе (специалист) вообще нет прерываний
    Твоя схема тоже сложнее, нежели редактирование сплошного куска. Всему своя цена. Разве на 8080 нет прерываний?

  4. #3

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А разумно подходить не пробовал к вопросу? Или только как в рекламе "опустим газету в серную кислоту, а журнал в дистиллированную воду".

    Назови хоть один plain текстовый редактор, в котором используется фрагментарное хранение текста. Желательно на тормозном Java/.NET
    Все. Текст хранится в виде массива/списка строк.

    ---------- Post added at 11:14 ---------- Previous post was at 11:12 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Твоя схема тоже сложнее, нежели редактирование сплошного куска. Всему своя цена. Разве на 8080 нет прерываний?
    На Специалисте, 86РК, Апогее, Микроше, Львове ПК01, Искре 1080 нет... Мало где есть, потому что контроллер прерываний - это отдельная дорогая микросхема, на нем экономили.

    ---------- Post added at 11:17 ---------- Previous post was at 11:14 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А кто сказал, что необходимо блокировать все на время переброски данных? Что мешает заполнить буфер редактирования следующей строкой и дать пользователю его дальше редактировать?
    1) Длина строки ограничена размером буфера редактирования. Размер буфера редактирования ограничивает размер текста.

    В обсуждаемом способе, буфер редактирования не требуется.

    2) При вставке буфера редактирования в текст потребуется сдвигать весь текст. А это может занять очень существенное время, пользователь продолжит печатать после нажатия ENTER и редактор пропустит первые символы в строке.

    В обсуждаемом способе, при нажатии Enter тормозов не будет вообще. Это лишь запись в память одного байта. Да перерисовка экрана, которую можно прервать при нажатии клавиши.

  5. #4

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    На Специалисте, 86РК, Апогее, Микроше, Львове ПК01, Искре 1080 нет... Мало где есть, потому что контроллер прерываний - это отдельная дорогая микросхема, на нем экономили.
    справедливости ради, у Вектор-06ц нет контроллера но есть прерывания
    как и положено одно VBL -> RST7
    контроллер нужен если прерываний >1
    или нужны всякие фокусы с ними, типа приоритетов

  6. #5

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Все. Текст хранится в виде массива/списка строк.
    BCE - это типа Binary Container Editor чтоли? Ссылочку на исходник можно? :lol:

    Цитата Сообщение от vinxru Посмотреть сообщение
    В обсуждаемом способе, при нажатии Enter тормозов не будет вообще. Это лишь запись в память одного байта. Да перерисовка экрана, которую можно прервать при нажатии клавиши.
    Зато будут постоянные тормоза при нажатии вверх-вниз (а это таки делается чаще, чем нажатие ентера). И чем длиннее строки текста, тем больше тормоза.

  7. #6

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    наоборот в .net/java память в куче выделяется мгновенно, там же сборщик дефрагментирует
    Это кажется. Свободная память описана в виде дерева. Поиск блока подходящего размера в дереве хоть и быстр log(N), но когда программа выделяет память тысячами блоков в секунду, все тормозит. Кеш процессора засоряется и общая производительность падает.

    К тому же, есть проблемы многопоточности. Приходтистя строить дерево свободных блоков для каждого потока и иногда их балансировать.

    Забегаем в другу тему. Но даже MS это сообразила и в C# уже можно кое-где создавать объекты на стеке. Вот там действительно выделение и освобождение памяти бесплатно. C++ возвращается

    ---------- Post added at 11:26 ---------- Previous post was at 11:24 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Зато будут постоянные тормоза при нажатии вверх-вниз (а это таки делается чаще, чем нажатие ентера). И чем длиннее строки текста, тем больше тормоза.
    Не будет. При средней длине строки в 64 байта, это копирование 65 байт в ОЗУ.

    Это выполнится быстрее, чем функция опроса клавиатуры, а тем более прокрутки экрана. На их фоне это вообще незаметно (моментально) будет.

    ---------- Post added at 11:27 ---------- Previous post was at 11:26 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Ссылочку на исходник можно? :lol:
    Я не собираюсь работать на тебя бесплатно Ты опять споришь о таких банальных вещах, что я подозреваю тебя в троллинге.

    ---------- Post added at 11:35 ---------- Previous post was at 11:27 ----------

    Цитата Сообщение от esl Посмотреть сообщение
    справедливости ради, у Вектор-06ц нет контроллера но есть прерывания
    как и положено одно VBL -> RST7
    контроллер нужен если прерываний >1
    или нужны всякие фокусы с ними, типа приоритетов
    Ага. На микросхемах выставляющих код команды RST7 в ответ на ответ процессора на прерывание то же экономили.

    Что в Intel сразу не доперли сделать вывод у процессора для генерации определенного прерывания (Хотя бы NMI или IRQ0) прямо на процессоре, непонятно.
    Последний раз редактировалось vinxru; 02.04.2013 в 12:52.

  8. #7

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Не будет. При средней длине строки в 64 байта, это копирование 65 байт в ОЗУ.

    Это выполнится быстрее, чем функция опроса клавиатуры, а тем более прокрутки экрана. На их фоне это вообще незаметно (моментально) будет.
    Что быстрее делается- поиск символа в ближайших 65 байтах или переброс этих самых 65 байт? Проанализируй, что чаще выполняется в текстовых редакторах- перемещение между строками или непосредственно редактирование. Будешь удивлен.

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я не собираюсь работать на тебя бесплатно Ты опять споришь о таких банальных вещах, что я подозреваю тебя в троллинге.
    А я тебя- в демагогии ("это всем известно", но никаких доказательств) и трепачестве. Сделал заявление- будь готов подтвердить. Истинность уже не так важна.

  9. #8

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А я тебя- в демагогии ("это всем известно", но никаких доказательств) и трепачестве. Сделал заявление- будь готов подтвердить. Истинность уже не так важна.
    Я не один день потратил на доказательства тебе, бессмысленно, надоело. И никаких благодарностей.

    Собственно мне благодарности не нужны, но они влияют на приоритеты. Лучше я потрачу время на помощью человеку, которому это действительно нужно.

    И сейчас я писал не тебе, а людям, которые могут случайно прочитать этот сырбор. Что бы они поняли шикарность этой задумки.

    ---------- Post added at 11:47 ---------- Previous post was at 11:44 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Что быстрее делается- поиск символа в ближайших 65 байтах или переброс этих самых 65 байт? Проанализируй, что чаще выполняется в текстовых редакторах- перемещение между строками или непосредственно редактирование. Будешь удивлен.
    Не буду удивлен.

    В этом способе есть незаметные для пользователя тормоза (копирование 65 байт) при перемещении курсора. При перемещении в начало/конец текста надо будет скопировать 36 Кб, но перерисовка экрана будет происходить дольше. Поэтому даже это не будет заметно.

    Но в твоем способе тормоза будут возникать при любом редактировании строки (копирование ~18 Кб после редактирования любой строки. Надо же вставить буфер в текст.)
    Последний раз редактировалось vinxru; 02.04.2013 в 12:51.

  10. #9

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я не один день потратил на доказательства тебе, бессмысленно, надоело. И никаких благодарностей.
    И что ты доказал? Ни-че-го. "Простейшую" (по твоим словам) задачу не смог решить, одно словоблудие. Хотя гонору было- выше крыши. Потому и трепач.

  11. #10

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    И что ты доказал?
    Склероз, да?

Страница 4 из 13 ПерваяПервая 12345678 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Алгоритм текстового Quest'a
    от ALKO в разделе Программирование
    Ответов: 11
    Последнее: 23.12.2010, 00:47
  2. Как проще код из текстового файла -> Alasm-файл?
    от TomCaT в разделе Программирование
    Ответов: 10
    Последнее: 28.05.2010, 16:53
  3. Адаптация текстового редактора
    от Raydac в разделе Софт
    Ответов: 1
    Последнее: 09.06.2008, 14:27
  4. Интересная идея текстового интерфейса в играх
    от Black_Cat в разделе Программирование
    Ответов: 3
    Последнее: 18.11.2006, 15:22
  5. Проект муз. редактора для AY
    от Bulba в разделе Музыка
    Ответов: 36
    Последнее: 09.09.2005, 20:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •