С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Все. Текст хранится в виде массива/списка строк.
---------- Post added at 11:14 ---------- Previous post was at 11:12 ----------
На Специалисте, 86РК, Апогее, Микроше, Львове ПК01, Искре 1080 нет... Мало где есть, потому что контроллер прерываний - это отдельная дорогая микросхема, на нем экономили.
---------- Post added at 11:17 ---------- Previous post was at 11:14 ----------
1) Длина строки ограничена размером буфера редактирования. Размер буфера редактирования ограничивает размер текста.
В обсуждаемом способе, буфер редактирования не требуется.
2) При вставке буфера редактирования в текст потребуется сдвигать весь текст. А это может занять очень существенное время, пользователь продолжит печатать после нажатия ENTER и редактор пропустит первые символы в строке.
В обсуждаемом способе, при нажатии Enter тормозов не будет вообще. Это лишь запись в память одного байта. Да перерисовка экрана, которую можно прервать при нажатии клавиши.
Это кажется. Свободная память описана в виде дерева. Поиск блока подходящего размера в дереве хоть и быстр log(N), но когда программа выделяет память тысячами блоков в секунду, все тормозит. Кеш процессора засоряется и общая производительность падает.
К тому же, есть проблемы многопоточности. Приходтистя строить дерево свободных блоков для каждого потока и иногда их балансировать.
Забегаем в другу тему. Но даже MS это сообразила и в C# уже можно кое-где создавать объекты на стеке. Вот там действительно выделение и освобождение памяти бесплатно. C++ возвращается
---------- Post added at 11:26 ---------- Previous post was at 11:24 ----------
Не будет. При средней длине строки в 64 байта, это копирование 65 байт в ОЗУ.
Это выполнится быстрее, чем функция опроса клавиатуры, а тем более прокрутки экрана. На их фоне это вообще незаметно (моментально) будет.
---------- Post added at 11:27 ---------- Previous post was at 11:26 ----------
Я не собираюсь работать на тебя бесплатноТы опять споришь о таких банальных вещах, что я подозреваю тебя в троллинге.
---------- Post added at 11:35 ---------- Previous post was at 11:27 ----------
Ага. На микросхемах выставляющих код команды RST7 в ответ на ответ процессора на прерывание то же экономили.
Что в Intel сразу не доперли сделать вывод у процессора для генерации определенного прерывания (Хотя бы NMI или IRQ0) прямо на процессоре, непонятно.
Последний раз редактировалось vinxru; 02.04.2013 в 12:52.
Что быстрее делается- поиск символа в ближайших 65 байтах или переброс этих самых 65 байт? Проанализируй, что чаще выполняется в текстовых редакторах- перемещение между строками или непосредственно редактирование. Будешь удивлен.
А я тебя- в демагогии ("это всем известно", но никаких доказательств) и трепачестве. Сделал заявление- будь готов подтвердить. Истинность уже не так важна.
Я не один день потратил на доказательства тебе, бессмысленно, надоело. И никаких благодарностей.
Собственно мне благодарности не нужны, но они влияют на приоритеты. Лучше я потрачу время на помощью человеку, которому это действительно нужно.
И сейчас я писал не тебе, а людям, которые могут случайно прочитать этот сырбор. Что бы они поняли шикарность этой задумки.
---------- Post added at 11:47 ---------- Previous post was at 11:44 ----------
Не буду удивлен.
В этом способе есть незаметные для пользователя тормоза (копирование 65 байт) при перемещении курсора. При перемещении в начало/конец текста надо будет скопировать 36 Кб, но перерисовка экрана будет происходить дольше. Поэтому даже это не будет заметно.
Но в твоем способе тормоза будут возникать при любом редактировании строки (копирование ~18 Кб после редактирования любой строки. Надо же вставить буфер в текст.)
Последний раз редактировалось vinxru; 02.04.2013 в 12:51.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)