OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 08 Ноябрь, 2024 10:36

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Кэширование в TextModels.
СообщениеДобавлено: Четверг, 30 Ноябрь, 2017 10:20 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1430
Причесывал я TextModels и что-то мне кэширование запутанным показалось. Попробовал удалить кеш совсем. Невооруженным взглядом вроде разницы не видно. Но интересно стало, сильно ли просела производительность? Так вот, замеры показывают, что без кэша даже быстрее, хотя разница в пределах ошибки измерений.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кэширование в TextModels.
СообщениеДобавлено: Четверг, 30 Ноябрь, 2017 12:23 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 988
Откуда: Казань
Что там кешировалось то?

Соответствие текущей позиции в тексте элементу piece table?
Если да, то разница может быть замента, если в документе было очень много редактирований (например, где-то вставили символ, удалили символ, вставили символ и т.д. и так 10000 раз, а текущая позиция находится после этих редактирований, тогда не надо будет проходить 10000 элементов списка, чтобы найти элемент, который соответствует текущей позиции).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кэширование в TextModels.
СообщениеДобавлено: Четверг, 30 Ноябрь, 2017 12:43 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1430
Чтение. Вместо того, чтобы лезть в файл за каждым символом, ридер читал блоками по 4K.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кэширование в TextModels.
СообщениеДобавлено: Четверг, 30 Ноябрь, 2017 18:31 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
То есть, теперь ридер читает посимвольно быстрее, чем поблочно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кэширование в TextModels.
СообщениеДобавлено: Четверг, 30 Ноябрь, 2017 21:33 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1430
Ну, я тщательно не мерил, прикрутил таймер к компилятору и перекомпилировал систему несколько раз. Вроде, выходит чуть быстрее.
Чтобы понятнее было, о чем речь. Было:
Код:
PROCEDURE  Read;
  IF ~(pos in cache) THEN
    ...
    filereader.SetPos(filepos);
    filereader.ReadBytes(cache,cpos,clen);
   ...
  END;
  res:= cache[cpos]
END Read;

стало:
Код:
PROCEDURE  Read;
  filereader.SetPos(filepos);
  filereader.ReadByte(ch);
  res := ch;
END Read;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кэширование в TextModels.
СообщениеДобавлено: Пятница, 01 Декабрь, 2017 06:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3805
Может статься, что раньше чтение не кэшировалось самой ОС, а теперь наверняка кэшируется. Запись в файл точно кэшируется, если правильно помню то по 16КБ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кэширование в TextModels.
СообщениеДобавлено: Пятница, 01 Декабрь, 2017 12:39 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1430
Так и сами файлы же буферизированные. То есть, кроме системного кеша, еще два своих.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB