Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Суть. Компилятор при создании исплняемого файла добавляет массу ненужного кода. Например Делфи при добавлении библиотеки компилирует её полностью. Даже если вам требуется один метод одного класса. Остальной код балластом висит в файле, а при исполнении в памяти. Это негативно отражается не только на весе программы, но и на временни её загрузки в память. Идея состоит в том, что надо найти ненужный код и удалить его из программы. Как я хочу это сделать. Сначала надо найти все вызовы (CALL), и заменить их на вызываемую функцию. Затем определяется, на какие области памяти после INT 20 ссылается программа. Все эти участки запоминаются. Остальные просто удаляются. На последнем этапе необходимо найти все участки повторяющегося кода, выделить их в процедуры, дописать в конец программы, а в теле заменить на CALL. Вроде на словах всё просто. Но я не знаю алгоритма поиска повторяющихся участков. А его вроде разрабатывали не один год. Проект OpenSource. Может кто поможет советом, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2005, 23:30 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Лучше напиши свой линкер. И компилятор. Это попроще будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2005, 23:36 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
В чём ты видешь трудности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2005, 23:44 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2005, 00:09 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Sarin...если вам требуется один метод одного класса. Остальной код балластом висит в файле, а при исполнении в памяти. Это негативно отражается не только на весе программы, но и на временни её загрузки в память... Для штучного решения это может иметь полезный эффект в виде уменьшения размера бинарника .. и все. Если проект состоит из множества динамически связываемых библиотек, то лучше их обобщать а не расчленять ИМХО. Sarin Идея состоит в том, что надо найти ненужный код и удалить его из программы. Лично меня больше интересует задача поиска паттернов в исходниках одного проекта, которые писались различными людьми и без соблюдения правил ООП и структуризации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2005, 05:58 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Лучше купи еще памяти. У меня задача была написать простейший справочник. Я так вообще засунул все данные недолго думая в память типа static. А надо было конечно воспользоваться какой нить базенкой типа IB/FB или SQLite. Но я сделал проще. И как раз думал что памяти щас завались хошь диск на 240 гигов пожалйста, хочешь памят оперативки Гиг пожалуйста. И по деньгам не дорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2005, 08:38 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Мне и мозгов и винта вполне хватает. Интересно просто это написать. Мне кажется это не настолько сложно и вполне востребованно. Мы все слишком привыкли к тому, что места на винте хватит на любой нашь проект. И клиент к СУБД весом в 1Mb - очень маленькая прога. Знаете, что меня добило. ПХП в винде весит 22 Mb. В Линухе 285. Килобайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2005, 10:51 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Попробуй поискать работу, за которую платят. И тебя перестанут расстраивать проблемы вроде "Клиент весом 1 мегабайт". У меня вот последний клиент 4,5 мегов - и, думаю, еще вырастет. Причем грузится он для запуска по сети. Слава Богу, прошли времена, кога приходилось со всякими QEMM долбаться. Лучше обрати внимание на алгоритмы обработки данных. Наверняка есть что оптимизировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2005, 13:44 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Да я великолепно понимаю, что с местом сейчас проблем нет. И скорость работы зависит скорей от алгоритма. Но есть задачи, в которых не то что лишний метр - лишний килобайт КРАЙНЕ нежелателен. Почему вы все пытаетесь меня отговорить от этой затеи? Вы пишите за деньги. И я, наверное, тоже когданибудь найду такую работу. А пока пишу в своё удовольствие, да перебиваюсь заказиками типа "нам нужна простенькая программа. Разработчика ищем среди студентов." Ну это не считая основной работы с программёрством не связанной. Меня не расстраимают проблемы с лишним мегабайтом. Меня расстраивает, что 900 Kb из этого мегабайта весят балластом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2005, 15:35 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
У меня клиент 100 кбайт. Щас вот думаю на новую версию переехать он увеличится в три раза будет целых 300 кбайт. Зато с BLOB (мемо) полями работать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 07:07 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Sarin Меня не расстраимают проблемы с лишним мегабайтом. Меня расстраивает, что 900 Kb из этого мегабайта весят балластом. Тогда начинай программировать на VC++. Все остальные насуют тебе кучу всего нужных и ненужных длл. Эта проблема еще с времен MSDOS 3.3 Обычная программка на клипере которая просчто выводит класический Helo world будет занимать около 200 кбт, на С будет где то 10 кб, ну а на ассемблере будет ( если это .сом файл ) ччтоб не соврать <1 кб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 14:46 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
CruelGenius Тогда начинай программировать на VC++. Все остальные насуют тебе кучу всего нужных и ненужных длл. Эта проблема еще с времен MSDOS 3.3 Обычная программка на клипере которая просчто выводит класический Helo world будет занимать около 200 кбт, на С будет где то 10 кб, ну а на ассемблере будет ( если это .сом файл ) ччтоб не соврать <1 кб Такое программирование остановит прогресс ИМХО. Мы превратимся в кодеров которые делают уникальные и ни с чем не совместимые, немодульные решения. По поводу com-файла... можно дойти до полного абсурда. Остается еще перенести BIOS процедуры прерываний в сам файл и операционака на фиг не нужна. Судите сами ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 16:13 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
SarinЕсть у меня амбициозная идеяЗаймись алгоритмами. Реши задачу 8-ми ферзей. Сделай программу, составляющую кроссворды. Вычисли число пи с 70000 знаками. Ну сделай свой интернет- магазин, наконец. Авось, пригодится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 19:28 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
О! Идея. Пиши на форте. Там программы получаюца намного меньше чем ассемблерные. Ежели не считать самого форта. А при значительно размере проги и с самим фортом меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 21:56 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
mayton CruelGenius ну а на ассемблере будет ( если это .сом файл ) ччтоб не соврать <1 кб Такое программирование остановит прогресс ИМХО. Мы превратимся в кодеров которые делают уникальные и ни с чем не совместимые, немодульные решения. По поводу com-файла... можно дойти до полного абсурда. Остается еще перенести BIOS процедуры прерываний в сам файл и операционака на фиг не нужна. Судите сами ИМХО. Бедолаги из Intel выпускают и выпускаю свои компилятора C++. И не знают что это останавливает прогресс. А равно и чудаки из мелкософта. Нет чтобы взять да и писать проги на Дельфи. Дельфи - двигатель прогресса. А они то все на С++. 2 mayton По поводу .com я привел просто пример. Не надо кричать что это абсурд. Если вы не знали этот асбурд валяется в Win98 ( command.com ). 2 Sarin . Какие проблемы? Возьми и пробуй. Ассемблер знаешь? Удачи! Я согласен с didgik это был не самый простой пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 06:43 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
CruelGenius[ ну а на ассемблере будет ( если это .сом файл ) ччтоб не соврать <1 кб MOV не_помню_ вроде_AX, не_помню_вроде_09h MOV не_помню_ вроде_BX, адрес_где_лежит_строка_hello_wordh INT21h INT20 адрес_где_лежит_строка_hello_wordh Hello word[символ_окончания_строки_вроде_20] Считаем: 3 + 3 + 2 + 2 + 11. Вроде 21 байт получился:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 14:44 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Руки прочь от Делфи. Нельзя так жестоко говорить про умерших. Я на ней писал, пока под виндой жил. Ничего лучше под винду, для быстрой и качественной разработки нет, небыло и небудет. Бедолаги из интела пишут, чтоб показать, что они круче АМД. Бедолаги из мелкософта родили чудовище, на котором писать долго и нудно. Если мне понадобится в Делфи очень маленькая прога под винду, я не VCL воспользуюсь, а WinAPI. Моя идея такова, что пиши хоть на делфи, хоть на Интеле оптимизировать нуно всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 14:51 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
2 Sarin : оптимизировать можно не только машинный код, но и время и деньги. Мы выполним ваш заказ быстро, качественно, недорого. Просьба выбрать 2 пункта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 15:02 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
Sarin CruelGenius[ ну а на ассемблере будет ( если это .сом файл ) ччтоб не соврать <1 кб MOV не_помню_ вроде_AX, не_помню_вроде_09h MOV не_помню_ вроде_BX, адрес_где_лежит_строка_hello_wordh INT21h INT20 адрес_где_лежит_строка_hello_wordh Hello word[символ_окончания_строки_вроде_20] Считаем: 3 + 3 + 2 + 2 + 11. Вроде 21 байт получился:) И то много! 7 байт на код, остальное на выводимую строку: xchg ax, bp ; при старте COM-программы в регистре BP находится 09xx (1 байт) mov dx, msg ; 3 байта int 21h ; 2 байта ret ; 1 байт msg db 'Hello, World!$' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 12:19 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
>Почему вы все пытаетесь меня отговорить от этой затеи? Потому что эта идея была реализована Борландом еще в 4м (!) трубопаскале, 2м С и сейчас является стандартной фичей во всех или почти всех компиляторах. Для виртуальных методов этот номер не проходит, поэтому никто не напрягается. Что такое "после INT 20" я вообще не понял. Washington Irving ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 12:41 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
2sarin без обид, но твои вопросы в форуме по линуксу, заставляют меня предпологать, что твоя амбициозная идея умрет не дождавшись реализации :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 12:49 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
может быть стоит посмотреть на upx ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 12:50 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
alex_k2sarin без обид, но твои вопросы в форуме по линуксу, заставляют меня предпологать, что твоя амбициозная идея умрет не дождавшись реализации :-) Я когда начал учить ПХП и Перл (кстати из за них на sql.ru и оказался) в соответствующем форуме задавал ещё более тупые вопросы. Сейчас иногда захожу туда. Отвечаю... ПХП знаю очень и очень неплохо. Вопрос: почему она не применима к виртуальным методам? А может не только к виртуальным? После INT 20. INT 20 - завершение программы. Точнее место, в котором проц делает регистры такими-же, как они были до начала выполнения проги. И (при многоадачной ОС) больше к этим (где прога валялась) сигментам не возвращается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 14:32 |
|
||
|
Есть у меня амбициозная идея.
|
|||
|---|---|---|---|
|
#18+
>INT 20 - завершение программы. Точнее место, в котором проц делает >регистры такими-же, как они были до начала выполнения проги. И (при >многоадачной ОС) больше к этим (где прога валялась) сигментам не >возвращается Cпасибо, все понятно. Washington Irving ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 14:37 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=32988337&tid=1347794]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 491ms |

| 0 / 0 |
