Автор Тема: Семантика SHORT(x) в Компонентном Паскале  (Прочитано 33688 раз)

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #60 : Декабрь 26, 2012, 06:28:59 pm »
Нет, не грузится. Сейчас, конечно, уже можно было бы грузить, но эта схема еще от Оберона.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #61 : Декабрь 26, 2012, 06:30:44 pm »
Нет, не грузится. Сейчас, конечно, уже можно было бы грузить, но эта схема еще от Оберона.
Забавно. Надо будет проверить. А каков максимальный размер файла/документа в BB?  4 гигабайта?
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #62 : Декабрь 27, 2012, 04:32:12 am »
2 Geniepro:
Форматы, гзипы, джпеги - всё это делается позже. На других итерациях развития системы.
Чем меньше работы ты можешь сделать на очередной итерации - тем лучше.
Желательно вообще в основном абстракции-интерфейсы сделать и начать пробовать, а реализации - самые "тупые". Потом можно поменять...
Так нафига вообще было сделано это 1-2-байтное кодирование? Ведь ежу понятно (а Вам видимо нет) что без этого лисапеда проще и быстрее сделать сохранение/считывание документов и приступить к другим, более важным вещам!!!
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #63 : Декабрь 27, 2012, 04:43:39 am »
Не, зипы - это лишнее. Вы подумайте: файл, хоть в гигабайт на компьютере со считанными мегабайтами памяти можно было открыть за доли секунды и тут же начать редактировать.
Во-первых, есть же алгоритмы потокового сжатия.
В конце концов, даже тем же зиповским алгоритмом можно было бы сжимать не весь документ целиком, а блоками. Всё равно был бы выигрыш по размеру.

Во-вторых, по гигабайтному файлу мгновенно позиционироваться можно если он вообще ничем не сжат или есть таблица начал сжатых блоков.
В блекбоксовском же варианте придётся по-любому проходить по всему файлу с начала до того места, которое нужно отобразить...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #64 : Декабрь 27, 2012, 06:20:18 am »
Нет, не грузится. Сейчас, конечно, уже можно было бы грузить, но эта схема еще от Оберона.
Забавно. Надо будет проверить. А каков максимальный размер файла/документа в BB?  4 гигабайта?
В памяти вроде только то что на экране.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #65 : Декабрь 27, 2012, 06:24:31 am »
А размер наверно не ограничен. Там же писы. А длина писы измеряется INTEGER'ом

albobin

  • Full Member
  • ***
  • Сообщений: 198
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #66 : Декабрь 27, 2012, 07:18:42 am »
Или там в формате файла заложены длины и типы областей. 
Там длина одновременно кодирует тип. Если отрицательная, то символы двухбайтовые.
Да, чем гадать, надо было просто посмотреть на начало текста модуля TextModels   :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #67 : Декабрь 28, 2012, 08:49:37 pm »
Нет, не грузится. Сейчас, конечно, уже можно было бы грузить, но эта схема еще от Оберона.
Таки дико извиняюсь, но я провел эксперимент.

Я взял базу нашего форума в json формате (ту, что я выложил), и скопипастил в документ ББ 1.6. Сохранил. Исходный файл был 14 Мегабайт, документ ББ стал 22 Мб.

Закрыл ББ. Открыл ББ, открыл там этот файл. До открытия файла ББ кушал порядка 16 Мегабайт ОЗУ, сразу после открытия - то ли 67 Мегабайт, то ли 82 Мегабайта. То есть оно скушало больше ОЗУ, чем файл занимает на диске вообще. Попробовал спозиционироваться в конец файла (Ctrl+End) - ББ ушел в себя и не вернулся. То есть отожрал одно из ядер, и не думает возвращать. Интерфейс естественно заморожен.

То есть по факту, большие файлы в ББ редактировать нельзя. Тезис
Цитата: trurl
Вы подумайте: файл, хоть в гигабайт на компьютере со считанными мегабайтами памяти можно было открыть за доли секунды и тут же начать редактировать.
Не верен. По крайней мере в приложении к ББ 1.6 в современных реалиях. Замечу, что это файло всего то 14 Мб размером исходно. Никаких гигабайтов.

PS. А еще один раз ББ отожрал полгига. На этом же файле. Не знаю почему.
PPS. Да, вполне возможно что это например какая-то гуйнявая компонента гадит, например Win32шные TextEditor, или как его там. Или кто-то еще. Один из многочисленных слоев. Но юзабельней для данной задачи от этого ББ не становится.
Y = λf.(λx.f (x x)) (λx.f (x x))

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #68 : Декабрь 29, 2012, 01:54:07 am »
А в открываемом файле нет ли очень длинных участков без переноса строки?
В таком случае тормоз идёт уже при работе алгоритма размещения символов по строкам...
Открой какой-нибудь здоровый текст "человеческий", с абзацами.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #69 : Декабрь 29, 2012, 05:06:01 am »
Т.е. тормоз не в TextModels, а в TextViews либо даже TextSetters (вероятнее).

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #70 : Декабрь 29, 2012, 06:51:41 am »
А в открываемом файле нет ли очень длинных участков без переноса строки?
В таком случае тормоз идёт уже при работе алгоритма размещения символов по строкам...
Открой какой-нибудь здоровый текст "человеческий", с абзацами.
Это все одно большая строка :-)

Отформатировал json, и вставил в ББ (так что это не одна большая строка), и повторил эксперимент: потребление памяти осталось в точности таким же как и в случае одной большой длинной строки. Но вот тормозов стало меньше. Ctrl+End/PageUp/PageDown теперь работают за приемлемое время - примерно по секунде тратится. То есть тормоза конечно, но жить можно.

Да, нашел ситуацию когда ББ радостно полгига отъедает - кушает в момент когда я из буфера обмена вставляю эти 14 Мб текста. Потом потребление памяти не падает (сколь я помню, ББ не возвращает память в систему даже если она больше не нужна).
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #71 : Декабрь 29, 2012, 07:03:59 am »
Решил открыть этот файл в сублиме -- полчаса или час назад кинул его в редактор,полоса прогресса де-то 40% показывает )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #72 : Декабрь 29, 2012, 07:05:48 am »
А в открываемом файле нет ли очень длинных участков без переноса строки?
В таком случае тормоз идёт уже при работе алгоритма размещения символов по строкам...
Открой какой-нибудь здоровый текст "человеческий", с абзацами.
Это все одно большая строка :-)

Отформатировал json, и вставил в ББ (так что это не одна большая строка), и повторил эксперимент: потребление памяти осталось в точности таким же как и в случае одной большой длинной строки. Но вот тормозов стало меньше. Ctrl+End/PageUp/PageDown теперь работают за приемлемое время - примерно по секунде тратится. То есть тормоза конечно, но жить можно.

Да, нашел ситуацию когда ББ радостно полгига отъедает - кушает в момент когда я из буфера обмена вставляю эти 14 Мб текста. Потом потребление памяти не падает (сколь я помню, ББ не возвращает память в систему даже если она больше не нужна).

Продолжаем эксперименты. Взял тот же, уже человеческий json, с абзацами, и продублировал его. Соответственно текст стал в два раза длиннее. Сохранил, закрыл ББ, открыл ББ, открыл файло (которое теперь не 22 Мб, а 44). Посмотрел на память.

Потребление памяти выросло, относительно 22 Мб файла ровно в два раза. 120 Мб против 60ти.

Потребление памяти в ББ прямо пропорционально объему открытого файла (с коэффициентом больше единицы), вне зависимости от его содержимого (с абзацами он или без).
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #73 : Декабрь 29, 2012, 07:06:54 am »
Решил открыть этот файл в сублиме -- полчаса или час назад кинул его в редактор,полоса прогресса де-то 40% показывает )))
Зато FAR (у меня третий) без дополнительных плагинов открывает мгновенно и на просмотр и на редактирование. Позиционироваие происходит тоже мгновенно.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #74 : Декабрь 29, 2012, 07:26:51 am »
Решил открыть этот файл в сублиме -- полчаса или час назад кинул его в редактор,полоса прогресса де-то 40% показывает )))
Зато FAR (у меня третий) без дополнительных плагинов открывает мгновенно и на просмотр и на редактирование. Позиционироваие происходит тоже мгновенно.
Ну AkelPad тоже быстро открывает -- примерно секунду, а вот Notepad и Edit+ тормозят нещадно...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…