Популярный пост mtumanov Опубликовано 22 мая, 2013 Популярный пост Поделиться Опубликовано 22 мая, 2013 (изменено) На многих форумах советуют для ускорения работы программы СГ сжать её при помощи упаковщика исполняемых файлов UPX. Однако сжатие без шифрования обычно применяется только в том случае, если необходимо уменьшить место занимаемое программой на диске, ну или ускорить загрузку сжатой программы в оперативную память. Во всех остальных случаях сжатая программа проигрывает несжатой, так как требуется загрузка в оперативную память распаковщика, распаковка ранее сжатой программы, на распаковку требуется процессорное время. В общем, сжатая программа должна работать не быстрее, а медленнее чем несжатая. Однако я сам лично на себе наблюдал на СГ 5, что сжатая программа работает быстрее. И решил я наконец разобраться в чём тут дело. А всё оказалось просто как три копейки одной монетой. Обычно, для экономии оперативной памяти, программы загружаются в неё не целиком, а по мере необходимости. Это называется оверлееем. Естественно, процесс загрузки-выгрузки частей требует времени, во время которого и тормозит программа. Упаковщик же UPX загружает в оперативную память всю программу целиком, выключая механизм оверлеев. Разумеется, когда программа загружена целиком в оперативную память, она работает быстрее, так как не требуется обмен с флэш памятью, которая медленнее оперативной. В разных навигаторах настройки подкачки разные, и поэтому у кого-то есть ускорение от упаковки, а у кого-то - нет. Существует способ принудительно присвоить программе атрибут полностью загружать себя в оперативную память без использования программы UPX. Описано по ссылке, там есть программа для модификации exe файла.http://forum.gps-club.ru/index.php?s=85d0635b994600439aea46eb61727430&showtopic=18186&st=10 Называется NoPagingExe.rar Проверил на себе - изумительно. Скорость работы СГ 7.7 сразу выросла на порядок. Бинарное сравнение файлов до обработки и после Сравнение файлов CityGuideCE.exe и CITYGUIDECE_NEW.EXE 00000207: 60 68 0000022F: 40 48 00000257: C0 C8 0000027F: 40 48 000002A7: 40 48 Однако я не проводил длительное тестирование СГ модифицированного при помощи NoPagingExe, (просто времени не хватило), но учитывая опыт множества людей которые используют UPX, всё должно быть хорошо. Выводы. 1. Если у Вас мало оперативной памяти (64Мб) то после упаковки UPX или изменения при помощи программы NoPagingExe вам может резко поплохеть, из-за того что СитиГид полностью израсходует оперативную память. Могут начаться вылеты, аварийные завершения и т.п. либо эффекта от отключения подкачки не будет, так как из-за нехватки оперативной памяти целиком загрузить в неё СГ не выйдет, и подкачка всё равно будет происходить. 2. Не я писал программу NoPagingExe. Так что я не несу никакой ответственности за результат её работы. 3. Перед модификацией, как обычно, сделайте резервную копию программы CityGuideCE.exe чтобы была возможность откатить изменения. 4. Если разработчики Вашего навигатора грамотно написали оболочку, то видимо Вам нет смысла что-либо делать, СГ у Вас и так работает максимально быстро. Но вот мне на моём Texet TN-705 (128Мб) эта процедура помогла на СГ 7.7 Изменено 22 мая, 2013 пользователем mtumanov 5 Ссылка на сообщение Поделиться на другие сайты
arctec Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Спасибо! Буду пробовать NoPaging вместо upx. Ссылка на сообщение Поделиться на другие сайты
Zauber Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Спасибо напомнил. Давно хотел попробовать эту утилиту, но все забывал. Сегодня опробую на 119-м билде. Он в принципе и так не тормоз, любопытно как оно будет на 128 Мб с обработкой без атрибута Read-Write. Ссылка на сообщение Поделиться на другие сайты
4Q!! Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 На многих форумах советуют для ускорения работы программы СГ сжать её при помощи упаковщика исполняемых файлов UPX. Однако сжатие без шифрования обычно применяется только в том случае, если необходимо уменьшить место занимаемое программой на диске, ну или ускорить загрузку сжатой программы в оперативную память. Во всех остальных случаях сжатая программа проигрывает несжатой, так как требуется загрузка в оперативную память распаковщика, распаковка ранее сжатой программы, на распаковку требуется процессорное время. В общем, сжатая программа должна работать не быстрее, а медленнее чем несжатая. Однако я сам лично на себе наблюдал на СГ 5, что сжатая программа работает быстрее. И решил я наконец разобраться в чём тут дело. А всё оказалось просто как три копейки одной монетой. Обычно, для экономии оперативной памяти, программы загружаются в неё не целиком, а по мере необходимости. Это называется оверлееем. Естественно, процесс загрузки-выгрузки частей требует времени, во время которого и тормозит программа. Упаковщик же UPX загружает в оперативную память всю программу целиком, выключая механизм оверлеев. Разумеется, когда программа загружена целиком в оперативную память, она работает быстрее, так как не требуется обмен с флэш памятью, которая медленнее оперативной. Отличная версия, все логично. Про 705е в таком случае все понятно, писали про них что флеш память у них бракованная и работает медленнее чем должно быть. Это все объясняет. На 7.8 у меня сжатие так же дает замечательный результат. Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Про 705е в таком случае все понятно, писали про них что флеш память у них бракованная и работает медленнее чем должно быть. У них (5х5 и 7х5) и оболочка через восьмёрку написана. Ссылка на сообщение Поделиться на другие сайты
4Q!! Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 У них (5х5 и 7х5) и оболочка через восьмёрку написана. Как бы ее тоже сжать Ссылка на сообщение Поделиться на другие сайты
ansko Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Кто опробует на 610, отпишитесь. Спасибо. Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 (изменено) Как бы ее тоже сжать Ну, сжать не знаю, а вот заменить на альтернативную возможно, скорее всего. На 4пда не копались? Я на своем повермане лет 5 назад с прошивками доколдовал всё-таки до того, что и сейчас ещё вполне без нареканий. После чего интерес к проблеме утратил начисто Изменено 23 мая, 2013 пользователем /DiOs Ссылка на сообщение Поделиться на другие сайты
4Q!! Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Да, там была другая прошивка, отличалась внешне, насчет внутренностей не знаю. Времени не нашлось попробовать ее, да и особой надобности не было. Ссылка на сообщение Поделиться на другие сайты
sergges Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 а для андроида надо сжимать ? )) Ссылка на сообщение Поделиться на другие сайты
arctec Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 ой-ой. сейчас тему прикроют. не надо на андроиде ничего сжимать! Ссылка на сообщение Поделиться на другие сайты
svlad2012 Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 ... Обычно, для экономии оперативной памяти, программы загружаются в неё не целиком, а по мере необходимости. Это называется оверлееем. ... Но вот мне на моём Texet TN-705 (128Мб) эта процедура помогла на СГ 7.7 ... Судя по всем вашим экспериментам можно сделать вывод: На Texet 505 по умолчанию файл подкачки (оверлей) находится на внешней флеш-памяти. Если она отсутствует, то оверлей располагается на внутренней флешке. Поэтому класс внешней флешки влияет на скорость работы навигатора, даже если она абсолютно пустая. Кто опробует на 610, отпишитесь. Спасибо. А оно вам надо? Мне кажется, что 610-й и так работает нормально, а "лучшее - враг хорошего" Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 у меня была вообще крамольная мысля. В 610ХД оболочка гордо названа IPhoneShell и валяется в Residentflash2YFAPPIphoneshellIPhoneshell.exe Вот интересно - если вместо него в эту папку запихать СГ, переименовав его заботливо.... Будет ли в качестве оболочки сразу грузиться СГ. И будет ли работать. И удастся ли вернуть все взад если чо. Экспериментировать (сразу скажу) не буду - я теоретик. У меня не тормозит, памяти хватает и т.д. Так чтопросто кидаю идею - если кроме СГ от навигатора ничего не нужно, может быть можно попробовать сделать СГ оболочкой? Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 И удастся ли вернуть все взад если чо. Насколько я ничего не помню, если кинуть на флешку некий файл, то загрузимся в винду. Что есть путь к откату. Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Насколько я ничего не помню, если кинуть на флешку некий файл, то загрузимся в винду. Что есть путь к откату. Ну, тут у всех навиков по-разному (У каких-то эксплеев, по-моему не пропрет). Но Тексеты к счастью не жмотятся выкладывать прошивки. Так что мне каццца, что если что - можно будет накатить взад заводскую прошивку. Ссылка на сообщение Поделиться на другие сайты
Толян Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 У меня не тормозит, памяти хватает и т.д. Через сколько метров (секунд) перестраивает маршрут при уходе с оного? Меня оч напрягает при установленных 30м, перепрокладка через 100-150. Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 (изменено) У меня перекладывала метров через 50. Я думал - тормоза. Оказалось, при обновлении (либо еще раньше сам случайно) сбилось в настройках на 50м. Переставил на 30. Все ОК. Ну, по крайней мере на Ваське если не свернул на n-ю линию, то к n+2 новый маршрут уже давно есть. Посмотрел свое видео, померял по карте расстояние. Метров через 70-80 уже звучит "Маршрут изменился". С учетом времени реакции (распознать, что я отклонился, а не погрешность позиционирования) и времени на пересчет маршрута - меня устраивает. Изменено 23 мая, 2013 пользователем IШIN Ссылка на сообщение Поделиться на другие сайты
Толян Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 У меня перекладывала метров через 50. Я думал - тормоза. Оказалось, при обновлении (либо еще раньше сам случайно) сбилось в настройках на 50м. Переставил на 30. Все ОК. Ну, по крайней мере на Ваське если не свернул на n-ю линию, то к n+2 новый маршрут уже давно есть. Видимо мой уже от старости тормозит, хотя на старой карте всё чётко было. Ссылка на сообщение Поделиться на другие сайты
leshiy333 Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Ну, тут у всех навиков по-разному (У каких-то эксплеев, по-моему не пропрет). Но Тексеты к счастью не жмотятся выкладывать прошивки. Так что мне каццца, что если что - можно будет накатить взад заводскую прошивку. Будьте осторожны. У меня рабочий Texet умер на середине прошивки. Ссылка на сообщение Поделиться на другие сайты
arctec Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Будьте осторожны. У меня рабочий Texet умер на середине прошивки. "на свой риск и страх" :) Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Вот почему я и не собираюсь у себя ставить эти эксперименты. Первая заповедь инженера. Работает - не трогай. Ссылка на сообщение Поделиться на другие сайты
mtumanov Опубликовано 23 мая, 2013 Автор Поделиться Опубликовано 23 мая, 2013 а для андроида надо сжимать ? )) А что, у андроидов есть проблемы со скоростью работы СГ? Я как раз писал о том, что можно ускорить работу ничего не сжимая. На андроидах не проверял, там всё совсем другое. Указанная утилита NoPaging.exe работает под MS Windows и обрабатывает файлы для WinCE. Не проверял, но думаю что для андроидов этот механизм не работает. Ссылка на сообщение Поделиться на другие сайты
mtumanov Опубликовано 23 мая, 2013 Автор Поделиться Опубликовано 23 мая, 2013 у меня была вообще крамольная мысля. В 610ХД оболочка гордо названа IPhoneShell и валяется в Residentflash2YFAPPIphoneshellIPhoneshell.exe Вот интересно - если вместо него в эту папку запихать СГ, переименовав его заботливо.... Будет ли в качестве оболочки сразу грузиться СГ. И будет ли работать. И удастся ли вернуть все взад если чо. Будет, будет, и назад можно будет вернуть. Но вот я когда выгрузил оболочку и запустил СГ под эксплорер то прироста скорости не получил. А когда оверлеи отключил, СГ 7 просто залетал, быстрее чем СГ 5. Видел альтернативные оболочки, но времени развлекаться с навигатором нет совершенно. Мне бы его настроить, чтобы он работал, и забыть про него. Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 23 мая, 2013 Поделиться Опубликовано 23 мая, 2013 Но вот я когда выгрузил оболочку и запустил СГ под эксплорер то прироста скорости не получил. Так то - под эксплорер. Мне кажется, что эксплорер и сам жрать память не дуак, и еще с собой чего-либо грузит. Поэтому и интересно было - вообще без ничего. Ведь штатная оболочка не поверх эксплорера запускается, вроде бы. Иначе почему выход из нее в Эхплорер и обратно - через перезагрузку? Ссылка на сообщение Поделиться на другие сайты
mtumanov Опубликовано 23 мая, 2013 Автор Поделиться Опубликовано 23 мая, 2013 Судя по всем вашим экспериментам можно сделать вывод: На Texet 505 по умолчанию файл подкачки (оверлей) находится на внешней флеш-памяти. Если она отсутствует, то оверлей располагается на внутренней флешке. Поэтому класс внешней флешки влияет на скорость работы навигатора, даже если она абсолютно пустая. Хм. А представьте что во время работы WinCE эту внешнюю флэшку грубо выдернули. Что будет с операционной системой в таком случае? В лучшем случае повиснет, в худшем - упадёт с громкими криками. Обычно файл пдкачки оставляет после себя следы. Так вот, на внешней флэшке я этого файла не видел. Да и нелогично его туда складывать. И документация о том же говорит. ========================== При том, что Windows CE предусматривает механизм подкачки страниц по мере надобности, она не позволяет применять файл подкачки для сохранения данных чтения-записи на вторичном устройстве памяти, например жестком диске. Другими словами, недоступные для записи страницы, например с программными кодами и постоянными данными, переносятся в память, как только в них возникает необходимость. Однако данные для чтения-записи никогда не заносятся в файл подкачки на жестком диске. Благодаря таким ограничениям быстрее происходит запуск программ в Windows CE, поскольку в память загружаются только те части программы, которые нужны на момент запуска. Но, поскольку Windows CE не позволяет сохранять в файле подкачки переменные данные, в распоряжении прикладных программ находится весьма ограниченное в объеме физическое ОЗУ устройства. По этой причине, вполне возможно, временами в ходе выполнения программа будет испытывать острый недостаток памяти. Следовательно, программы для Windows CE должны быть предельно "экономны" в потреблении оперативной памяти и снабжены средствами для "мягкого" выхода из возникающих в связи с этим аварийных ситуаций. ========================== http://citforum.ru/programming/digest/ce_programming.shtml Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения