Как Hex редакторы отображают данные так быстро? - PullRequest
4 голосов
/ 25 апреля 2010

Я создал приложение, похожее на блокнот, и если я загружаю файл размером 1 МБ в текстовое поле, это занимает около 1 минуты. Двоичный редактор Visual Studio отображает строки, Hex и ascii версии за доли секунды. Как они получают данные в текстовое поле так быстро? Спасибо

Ответы [ 2 ]

9 голосов
/ 25 апреля 2010

Они только читают достаточно файла, чтобы отобразить то, что можно увидеть на экране. Другими словами, если ваш пользовательский интерфейс может отображать только 100 байтов за раз, вам нужно только прочитать 100 байтов, чтобы заполнить экран. Если пользователь прокручивает окно, вам необходимо прочитать дополнительные байты, чтобы заполнить недостающие фрагменты.

0 голосов
/ 05 мая 2010

Я не хочу быть грубым. Просто надеюсь помочь и уточнить В ответ вы упомянули, что проблема не в чтении, а в том, что проблема была в win32. Но я действительно сомневаюсь в этом.

Во-первых, доступ к диску чрезвычайно медленный по сравнению с чем-либо связанным с графическим интерфейсом. Даже если вы установите поле РЕДАКТИРОВАТЬ, чтобы оно содержало очень большое количество текста, это, по сути, просто memcpy и перерисовка.

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

Так вы действительно уверены, что это проблема скорости графического интерфейса, а не чтения? Можете ли вы предоставить время на обоих? Мне просто так трудно поверить, что проблема заключается в графическом интерфейсе ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...