Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Убить System.pas   Найти похожие ветки 

 
RustiK   (2004-08-17 10:07) [0]

Привет всем!

Может мне кто подсказать как мне можко избавиться от модуля system.pas автоматически подключаемого к проекту при компиляции.
Если просто из uses убрать не прокатит, в других модуля он прописан. В тот же Forms он присутствует. Т.е. если я подключаю хоть один модуль, в котором хоть в одном зависимом модуле прописан system.pas, то хошь нихошь он опять таки липнет к проекту при компиляции. Как мне от него избавиться?


 
Iconka ©   (2004-08-17 10:08) [1]

Зачем?


 
Digitman ©   (2004-08-17 10:11) [2]


> RustiK   (17.08.04 10:07)  


чем тебе так насолил этот модуль ?


 
RustiK   (2004-08-17 10:11) [3]


> Зачем?


Уменьшить EXE-шник !!!


 
Гаврила ©   (2004-08-17 10:11) [4]

Никак


 
Rem   (2004-08-17 10:14) [5]

Правильно! А еще, в целях оптимизации, давайте отрубим Рустику руки и ноги, чтобы он меньше весил! А можно и голову...


 
Digitman ©   (2004-08-17 10:14) [6]


> RustiK   (17.08.04 10:11) [3]
> Уменьшить EXE-шник !!!


20..30 кб - это разве размер ?! ...


 
имя   (2004-08-17 10:14) [7]

Удалено модератором


 
RustiK   (2004-08-17 10:15) [8]

Тут хоть раз могут нормально ответить по существу, без выпендрежа?

Ну может чем заменить? Хотя не раз слышал, что как-то можно его не использовать вообще.


 
Digitman ©   (2004-08-17 10:16) [9]


> RustiK   (17.08.04 10:15) [8]


ты GetMem пользуешь явно или неявно ? с типом string работаешь ?


 
RustiK   (2004-08-17 10:20) [10]


> gigabyte.iatp.org.ua   (17.08.04 10:14) [7]
> Чтоб уменьшить екзешник, лучше эти самые Forms и Classes
> убери и пиши на WinAPI

Чесно говоря я и так на WinAPI пишу (не давно начал), но остается одно "но".
Не все можно быстро и качественно написать на WinAPI.


> 20..30 кб - это разве размер ?! ...


Кто-то на этом форуме кричал, кто не помню, что отказываясь от system.pas можно сэкономить ~200 кило.


> ты GetMem пользуешь явно или неявно ? с типом string работаешь
> ?


и что?


 
Digitman ©   (2004-08-17 10:22) [11]


> Кто-то на этом форуме кричал, кто не помню, что отказываясь
> от system.pas можно сэкономить ~200 кило.


глупости это


> и что?


а то что менеджер памяти, распределяющий память приложения при работе хотя бы с тем же string, реализован именно в system


 
VMcL ©   (2004-08-17 10:23) [12]

>>RustiK  (17.08.04 10:11) [3]

Стараться написать супермаленький экзешник на Delphi - это третье извращение после футбола на льду и хоккея на воде, потому что Delphi для этого не предназначен. Хочешь супермаленький экзешник - пиши на чистом ассемблере.


 
Dyn`alt ©   (2004-08-17 10:25) [13]

Переходи на KOL&MCK: компактность кода + визуальность


 
RustiK   (2004-08-17 10:26) [14]


>
> а то что менеджер памяти, распределяющий память приложения
> при работе хотя бы с тем же string, реализован именно в
> system


Разве нельзя вырезать тот кусок кода из system и засунуть в свой проект?


 
Digitman ©   (2004-08-17 10:28) [15]


> RustiK   (17.08.04 10:26) [14]


а попробуй-ка вырежь !

и это только мизер (но один из самых важных) в функциональности модуля, которой ты так или иначе пользуешься, сам того не ведая ... так что ох как много "вырезать" придется !


 
Iconka ©   (2004-08-17 10:29) [16]


> Разве нельзя вырезать тот кусок кода из system и засунуть
> в свой проект?

Действуй!


 
Erik1   (2004-08-17 10:29) [17]

To RustiK
Ну ты и дурак, тебе говорят ненадо значить ненадо! А размер ты практически неуменьшиш, потому, что из system включается только то, что используется. Это значить ты сможеш добится экономии в 10Kb. А это полный бред и нечего с этим лезть на форум по Delphi. Перебирайся на ASM и их форум, возможно там этот вопрос будет уместен.


 
RustiK   (2004-08-17 10:30) [18]


> а попробуй-ка вырежь !

Ну хорошо допустим избавиться от него нельзя.

Ну заметить то чем-нибудь можно же.


 
Digitman ©   (2004-08-17 10:34) [19]


> RustiK   (17.08.04 10:30) [18]


тебе ж говорят - не занимайся дурью !

ибо если ты со string работаешь, то тебе не только system, но и sysutils придется "кромсать"/"менять" ... ты попросту заработаешь себе геморрой, неизвестно ради чего)


 
RustiK   (2004-08-17 10:35) [20]


> Erik1

Сам ты дурак, и уши у тебя кривые. Прежде чем залеть на этот форум почитай правило о вежливости.

И гон все это чистой воды, что подключается только то, что используешь. Если ты хоть одну функцию хоть из одного 10 мегабайтного модуля используешь то он весь и компилиться всместе с твоим проектом


 
RustiK   (2004-08-17 10:37) [21]

Злые вы все, уйду я от вас..... :((((


 
sergch   (2004-08-17 10:37) [22]

Необходимо использовать ассемблерные вставки.


 
Digitman ©   (2004-08-17 10:39) [23]

да куда ты денешься)


 
Digitman ©   (2004-08-17 10:41) [24]


> RustiK   (17.08.04 10:37) [21]


злые мы, видите ли ..

у тебя блажь в голове, а мы злые ... потому что прямо говорим тебе об этом ... и отнюдь не без аргументов ...


 
RustiK   (2004-08-17 10:43) [25]


> Digitman ©   (17.08.04 10:39) [23]
> да куда ты денешься)

Эээээх... ваша правда, все равно вернусь...

Не жить вам без нас простых пользователей, ламеров программеров и просто участников форума... ;)


 
RustiK   (2004-08-17 10:48) [26]

Вот нашел посмотрите что пишут...

http://doc.trecom.tomsk.su/Delphi/Borland_Delphi_40_Developers_guide/www.user.cityline.ru/~vlelenaf/delphi/a473.htm


 
REA ©   (2004-08-17 10:49) [27]

Да ладно - чего наехали на человека. Я в свое время classes уродовал и довольно успешно. Пусть себе развлекается.


 
Digitman ©   (2004-08-17 10:54) [28]


> Вот нашел посмотрите что пишут


ну правильно ! тебе там и пишут, что тебе следует удалить несущественное/неиспользуемое из system и перекомпилировать его  ... только вот незадача : ты сам-то знаешь , что тебе удалять нужно оттуда ?


 
RustiK   (2004-08-17 10:55) [29]


> ты сам-то знаешь , что тебе удалять нужно оттуда ?

Ну подскажи если не трудно


 
Digitman ©   (2004-08-17 10:57) [30]


> RustiK   (17.08.04 10:55) [29]


чудак человек !)

это ж напрямую зависит от того, что ты планируешь наворотить в своей программе !


 
RustiK   (2004-08-17 10:57) [31]

с учетом того что не собираюсь использовать никаких inttostr и все такое


 
Рамиль ©   (2004-08-17 10:57) [32]


> ты сам-то знаешь , что тебе удалять нужно оттуда ?

Так ему же весь надо было удалить. Пусть оставит
unit System;

interface

implementation

end.


И компилит на здоровье


 
RustiK   (2004-08-17 10:58) [33]

Эх ладно щя по моему наличности переходит будем, лучше закрыть эту ветку.

ВСЕМ ПОКА, ВСЕМ СПАСИБО!


 
Рамиль ©   (2004-08-17 10:58) [34]


> с учетом того что не собираюсь использовать никаких inttostr
> и все такое

IntToStr, между прочим, описана в SysUtils


 
RustiK   (2004-08-17 11:00) [35]

Мужики только по голове не бейте...
У меня по моему ошибка в вопросе была :)))))))))


 
Digitman ©   (2004-08-17 11:02) [36]


> RustiK


угу ... чайником бы тебя по макушке) ... чтобы не путал sysutils с system)


 
Anatoly Podgoretsky ©   (2004-08-17 11:05) [37]

Единственный метод "удалить" system это все оттуда убрать, он останется, но будет пустым. То что у тебя не будет работать к делу не относится, ты же хотел избавиться.


 
Юрий Зотов ©   (2004-08-17 11:18) [38]

> RustiK   (17.08.04 10:20) [10]

> Кто-то на этом форуме кричал, кто не помню, что отказываясь от
> system.pas можно сэкономить ~200 кило.

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

Доказать? Пожалуйста. Экзешник вот такой пустой программы:
program Project1;
begin
end.
будет весить примерно 15 кило, несмотря на подключенный модуль System. О какой же экономии в 200 Кб может тогда идти речь?

Далее - эти 15 кило тоже не принадлежат одному лишь модулю System, еще они уходят на различные служебные дела (формат PE-файла, код загрузки системных библиотек и пр.). А из модуля System здесь подключается только необходимый служебный код, который используется всегда, даже и в пустом проекте

Далее. Вот Вы говорите что пишете на чистом API. ОК. Напишите на чистом API программу, которая просто показывает пустое окно - увидите, что она тоже весит примерно 15 кило. И тоже несмотря на подключенный модуль System. Мы видим, что по сравнению с пустым проектом размер программы практически не изменился. Значит, делаем вывод: написание программ на чистом API - вот это и есть то, что нам и нужно, если мы хотим бороться за малый размер.

И это так и есть. Потому что, сколько бы функций API мы не вызывали, код системных библиотек, где они сидят, все равно один, и в наш EXE он не входит. Входить в EXE будет только написанный НАМИ код, размер которого получится очень малым (реально - несколько десятков Кб, вряд ли более).

> RustiK   (17.08.04 10:35) [20]

> И гон все это чистой воды, что подключается только то, что
> используешь. Если ты хоть одну функцию хоть из одного 10
> мегабайтного модуля используешь то он весь и компилиться
> всместе с твоим проектом

Ну я же говорил - на этом, и на других форумах произносится немало глупостей. Зачем же еще увеличивать их количество?


 
Anatoly Podgoretsky ©   (2004-08-17 11:32) [39]

Потом кто то другой будет ссылаться на эту глупость. :-)


 
RustiK   (2004-08-17 11:41) [40]

Спасибо за разъяснительный ответ.

Как я и говорил что я ошибся в названии файла. Мне нужно избавиться от SysUtils.pas. Возможно ли вообще от него избавиться или урезать или заменить?


 
Sandman25 ©   (2004-08-17 11:42) [41]

Возможно


 
Anatoly Podgoretsky ©   (2004-08-17 11:42) [42]

Не использовать.


 
RustiK   (2004-08-17 11:44) [43]

А как?
Если можно в кратце расскажите.


 
Sandman25 ©   (2004-08-17 11:46) [44]

Убрать из uses.
Все, на что компилятор будет ругаться, копировать из SysUtils.Pas в RustikSysUtils.pas


 
Рамиль ©   (2004-08-17 11:46) [45]

не писать
uses SysUtils;


 
Digitman ©   (2004-08-17 11:46) [46]


> RustiK   (17.08.04 11:44) [43]
> А как?


убери его из USES
убери также косвенные ссылки на ф-ции из этого модуля в иных используемых тобой модулях

и будет тебе столь долгожданное счастье


 
Юрий Зотов ©   (2004-08-17 11:47) [47]

> RustiK   (17.08.04 11:41) [40]

Просто не используйте его и не включайте в Uses. Очень многие функции в SysUtils являются просто удобными оболочками вокруг функций API - значит, вместо них можно напрямую использовать их "первоисточники".

Но 200 Кб Вы на этом тоже не сэкономите. Максимум экономии, которая здесь может получиться - примерно 40 Кб.


 
RustiK   (2004-08-17 11:48) [48]

А таких модулей туча, которые коссвенно ссылаются. Как мне их всех перебить? Или удалить все из SysUtils, а потом втсавлять нужные куски кода?


 
Iconka ©   (2004-08-17 11:49) [49]

И флейм начался с новой силой....


 
Думкин ©   (2004-08-17 11:51) [50]

>  [48] RustiK   (17.08.04 11:48)

Вот для писания на АПИ подключаем Windows. Я отключил его и сделал свой uWin. Все что надо - перетащил. И стоило оно того? Нет.
Только для забавы, как песчанный замок на море. Лучше сразу из кирпича(покупного). ИМХО.


 
Sandman25 ©   (2004-08-17 11:52) [51]

RustiK

Ну да. Избавляетесь от  всех ссылок, тем самым переписывая полбиблиотеки Delphi.


 
Рамиль ©   (2004-08-17 11:54) [52]

Слушай, "пустой" exe с SysUtils занимает около 40 кб, без - 13 кб, следовательно разница в 27 кб, все остальное не компилится, оно тебе надо?


 
Digitman ©   (2004-08-17 11:58) [53]

ну прямо-таки какое-то садо-мазо)


 
Digitman ©   (2004-08-17 12:02) [54]

РустиК, вероятно, хочит засандалить по всему Интернету свой супер-пупер спамо-виро-трояно-хрензнаетчтоделающий-исполняемый файл размером в 4кб  ... а мож умудрится и меньше ... если изуродует из РЕ-заголовок до неузнаваемости)


 
Anatoly Podgoretsky ©   (2004-08-17 12:10) [55]

RustiK   (17.08.04 11:48) [48]
Хочешь кататься, давай и саночки вози.


 
AlexZ   (2004-08-17 12:13) [56]

Я всё не стал читать, но скажу своё мнение :)
System.pas подключает компилер автоматически, т.к. его используют другие модули. У Вас же присутствует в проекте,.. ну... скажем Windows.pas, Messages.pas.

Дальше, вижу, речь идёт о SysUtils:
Пустой проект:

Program Not;
begin
end;

весит 10 Кб минимум, SysUtils добавит Кб так... 30. Делфи - не лучший выбор для компактного и быстрого кода.

40 Кб - это очень много, согласен.
>>Кто-то на этом форуме кричал, кто не помню, что отказываясь от system.pas можно сэкономить ~200 кило.

Если Вы вспомнили именно тот случай... Это был я. И я говорил я про Classes.pas. Добавлял он Кб 60. В итоге я всё сделал без него, добавив +1Кб.


 
Мастер ©   (2004-08-17 12:17) [57]

>AlexZ   (17.08.04 12:13) [56]
Делфи - не лучший выбор для компактного и быстрого кода.

За эти слова отвечаешь?

Приведи сравнительную таблицу по скорости работы программ, компилированных другими компиляторами.


 
Digitman ©   (2004-08-17 12:18) [58]


> Делфи - не лучший выбор для .. быстрого кода


никто не заставляет использовать якобы "тормозную" VCL ... а если VCL таки не используется, то никакие претензии по "быстроте кода" не могут иметь сколь-либо серьезные основания


 
Anatoly Podgoretsky ©   (2004-08-17 12:25) [59]

AlexZ   (17.08.04 12:13) [56]
Эта, в танцевальное училище не поступать.


 
AlexZ   (2004-08-17 12:46) [60]

>>За эти слова отвечаешь?
Да.
И тут дело даже не в вцл. Сам компилятор делает код насыщеным коллами (call). И я убедился, когда делал програмку на делфе (только c модулями Windows & Messages - чистые Апи.) и позже на Асме. Впрочем, это и не удивительно.

Anatoly Podgoretsky ©   (17.08.04 12:25) [59]
Немного не понял ответа.


 
Digitman ©   (2004-08-17 12:49) [61]


> AlexZ   (17.08.04 12:46) [60]
> Сам компилятор делает код насыщеным
> коллами (call)


ты на in-line-функции что ли намекаешь, которых якобы нет в делфи ?


 
AlexZ   (2004-08-17 12:51) [62]

Ну если только инлайн ассемблер использовать - тогда скорость будет. Под словом "скорость" я имел ввиду скорость работы приложения, а не затраченное время на его изготовление ;)


 
Digitman ©   (2004-08-17 12:59) [63]


> Под словом "скорость" я имел ввиду скорость работы приложения,
> а не затраченное время на его изготовление


понятно что лошадь, но только с рогами !)

но, с другой стороны, Делфи "заточена" именно под быструю разработку бизнес-приложений, а это и есть по сути минимальное "затраченное время на его изготовление"


> если только инлайн ассемблер использовать - тогда скорость
> будет


на современных процессорах  с конв.архитектурой и блоком предсказания ветвлений разница между колами с непоср.адресацией (а их - подавляющее большинство) и аналогичными по конечному алгоритму инлайн-вставками настолько эфемерна, что рассматривать ее всерьез вряд ли стоит


 
AlexZ   (2004-08-17 13:18) [64]

Digitman ©   (17.08.04 12:49) [61]
Вы опередили мой следующий ответ. Я когда его потил, вашего ответе не видел.
----
Вообще, бесполезно о чём-то спорить. Т.к. есть, были и будут три основных языка - Паскаль, С и Асм. Я лишь сказал человеку, который воюет за каждый Кб, что в Делфе он этого не получит.
Скорость: только Асм вставки. Ведь самому можно сделать такое, чего в любом Unit"е нету. Т.е. заточить свою реализацию. Ну а про компилер уже не буду говорить. Кто писал на Асм, тот поймёт.
Всё. Ато спорить можно бесконца. В этой теме мой последний пост.


 
Skyle ©   (2004-08-17 13:20) [65]


> Паскаль, С и Асм

Сейчас возможно кого-то будут пинать...
Возможно ногами.... :)


 
Kerk ©   (2004-08-17 13:37) [66]

перекомпиляция System.pas - это отдельный геморрой, ибо он сам на себя неявно ссылается.. :)


 
Aleksandr.   (2004-08-17 13:49) [67]

RustiK :
Я в свое время, не будучи умным, тоже озадачился программками с маленьким размером - у любого начавшего с Паскаля, такой зуд имеется. Пару дней я убил на переделку модуля classes - точнее, создания двух своих модулей из classes и contnrs - в один я вынес свой TList, а во второй - TStream (у меня много прикладных программок, работающих консольно и юзающих только листы и потоки). Ниче получилось, приятно, красиво, быстро. А потом скомпилял, и обнаружил, что выиграл что-то около 40 килограмм размера экзешника. А для упаковки upx-пакером вообще ноль без палочки. Классы свои я, конечно, оставил, но понял на будущее, что игра свеч не стоит, а для визуальных программок так лучше KOL"a ничего и не придумаешь. А вообще - переходи на Делфи .Net. Я с ней уже два месяца контачу - экзешники выглядят офигительно - 5-6 кг против 500-600 в Д7! (только вот без MS FrameWork хрен ты запустишь такую программу).


 
Anatoly Podgoretsky ©   (2004-08-17 14:13) [68]

Aleksandr.   (17.08.04 13:49) [67]
5-6 это потому что ты умеешь писать, а у других в несколько мегабайт.



Страницы: 1 2 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.039 c
1-1092912806
STARfish
2004-08-19 14:53
2004.09.05
Как обработать клик по ScrollBox, по его полосе прокрутки?


6-1088744933
Iraizor
2004-07-02 09:08
2004.09.05
Небольшой вопрос про SMTP


14-1092813159
syte_ser78
2004-08-18 11:12
2004.09.05
ламерский вопрос по БД


3-1092117678
RoadStar
2004-08-10 10:01
2004.09.05
Разность двух запросов


1-1092906179
Марат
2004-08-19 13:02
2004.09.05
Fatal Error