User Tag List

Страница 3 из 13 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 124

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

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

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

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

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Vitamin, Редактирование в произвольном месте. не?
    Самый тяжелый случай в плане переброса памяти- редактирование в начале большого текста.

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Самый тяжелый случай в плане переброса памяти- редактирование в начале большого текста.
    для описываемой выше схемы - это вообще не играет роли где редактировать
    локальное редактирование - всегда быстрое
    а вот перемещение по тексту уже стоит, и тем больше чем дальше перемещение
    Последний раз редактировалось esl; 02.04.2013 в 10:24.

  4. #3

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

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    для описываемой выше схемы - это вообще не играет роли где редактировать
    Ага. Все одинаково тормозит

    Цитата Сообщение от esl Посмотреть сообщение
    локальное редактирование - всегда быстрое
    Что такое локальное редактирование и где оно медленное?

    Цитата Сообщение от esl Посмотреть сообщение
    а вот перемещение по тексту уже стоит, и тем больше нм дальше перемещение
    Ну да. В предлагаемой схеме перемещение по тексту будет стоить. В обычных редакторах- не стОит (тупо поиск следующего/предыдущего перевода строки).

  5. #4

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

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Ага. Все одинаково тормозит
    нет, с чего бы

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Что такое локальное редактирование и где оно медленное?
    пример(только что открыл на корвете редактор E, там оказалась обычная вставка в текст со сдвигом)
    открываем большой текст (~30k, почти вся память свободная у редактора)
    в начале текста добавляем строку
    пока редактируем ее - все быстро и хорошо
    как только выходим из строки (например вниз)
    сразу ЗАМЕТНАЯ пауза на копирование хвоста текста


    Цитата Сообщение от Vitamin Посмотреть сообщение
    Ну да. В предлагаемой схеме перемещение по тексту будет стоить. В обычных редакторах- не стОит (тупо поиск следующего/предыдущего перевода строки).
    так прикол в том что в обычной жизни большие копирования будут только в местах где пользователь их нормально воспринимает (типа переход в другой конец текста)
    зато при локальном редактировании (в пределах экрана) паузы нет вообще
    а при PgUp/Dn она минимальна но тоже вполне ожидаема пользователем)

    ---------- Post added at 10:21 ---------- Previous post was at 10:19 ----------

    Цитата Сообщение от jerri Посмотреть сообщение
    вопрос в том
    зачем сейчас писать такой редактор?
    сфера применения?
    как в том анекдоте, ну во первых это красиво
    писать сейчас что угодно для тех компов - чистый фан
    а вариант - не более чем альтернатива плоскому тексту

  6. #5

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,910
    Спасибо Благодарностей отдано 
    352
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    246 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вопрос в том
    зачем сейчас писать такой редактор?
    сфера применения?
    С уважением,
    Jerri / Red Triangle.

  7. #6

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

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Что такое локальное редактирование и где оно медленное?
    Добавление символов к конец строки под курсором выполняется за одну команду процессора. При этом, не требуется куча, не возникает фрагментации памяти, строки в памяти лежат всегда по порядку и плотно, поэтому сохранять файл можно одним обращением к ОС.

    Медленно будет, если мы каждую строку разместим в динамической куче. При этом 50% ОЗУ из из фрагментации может оказаться недоступным, а при увеличении строки придется выделать новый кусок из кучи. А это долго по факту. Это основная причина тормозов Java/.NET на современных компах, не то что 8080

    ---------- Post added at 10:25 ---------- Previous post was at 10:22 ----------

    Причем, этот способ можно считать вообще бестормозным. Ибо скорость отрисовки целого экрана будет меньше, чем скорость копирования 30 Кб текста в ОЗУ.
    Последний раз редактировалось vinxru; 02.04.2013 в 12:11.

  8. #7

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

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    нет, с чего бы
    Потому что при навигации по тексту придется перебрасывать блоки памяти из начала в конец.

    Цитата Сообщение от esl Посмотреть сообщение
    пример(только что открыл на корвете редактор E, там оказалась обычная вставка в текст со сдвигом)
    открываем большой текст (~30k, почти вся память свободная у редактора)
    в начале текста добавляем строку
    пока редактируем ее - все быстро и хорошо
    как только выходим из строки (например вниз)
    сразу ЗАМЕТНАЯ пауза на копирование хвоста текста
    Сделай то же самое на acedit. Текст можешь 64к сделать.

    Цитата Сообщение от esl Посмотреть сообщение
    так прикол в том что в обычной жизни большие копирования будут только в местах где пользователь их нормально воспринимает (типа переход в другой конец текста)
    Вопрос в другом- во имя чего эти копирования? Если я листаю постранично, ожидаю, что бОльшая часть процессорного времени уйдет на перерисовку, а не на невнятное копирование из пустого в порожнее.

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

    Цитата Сообщение от vinxru Посмотреть сообщение
    Добавление символов к конец строки под курсором выполняется за одну команду процессора. При этом, не требуется куча, не возникает фрагментации памяти, строки в памяти лежат всегда по порядку и протно, поэтому сохранять файл можно одним обращением к ОС.

    Медленно будет, если мы каждую строку разместим в динамической куче. При этом 50% ОЗУ из из фрагментации может оказаться недоступным, а при увеличении строки придется выделать новый кусок из кучи. А это долго по факту. Это основная причина тормозов Java/.NET на современных компах, не то что 8080
    А разумно подходить не пробовал к вопросу? Или только как в рекламе "опустим газету в серную кислоту, а журнал в дистиллированную воду".

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

  9. #8

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

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Назови хоть один plain текстовый редактор, в котором используется фрагментарное хранение текста. Желательно на тормозном Java/.NET
    сейчас (когда много памяти) этого делать нет вообще смысла
    дешевле построить связные списки
    а тут речь в борьбе за каждый такт

    кстати, про скорость, посчитал тут
    на 8080 ldir одного байта - 48 тактов
    и для корвета получаем время в фреймах
    >>> 16к*1024*48/50000
    15
    >>> 30к*1024*48/50000
    29
    30 фреймов это почти пол секунды, уже ОЧЕНЬ заметно

    хотя кому мы тут доказываем, речь про те машины
    и про время обновление экрана занимающего много меньше времени
    как в текстовом режиме на корвет/msx,
    в графике отрисовка займет заметно больше

  10. #9
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Это основная причина тормозов Java/.NET
    наоборот в .net/java память в куче выделяется мгновенно, там же сборщик дефрагментирует

  11. #10

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

    По умолчанию

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

    Цитата Сообщение от esl Посмотреть сообщение
    30 фреймов это почти пол секунды, уже ОЧЕНЬ заметно
    А кто сказал, что необходимо блокировать все на время переброски данных? Что мешает заполнить буфер редактирования следующей строкой и дать пользователю его дальше редактировать? Например, редактирование на прерываниях, переброска- в основном режиме.

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

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

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

Эту тему просматривают: 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

Ваши права

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