Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Убить 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.63 MB
Время: 0.033 c
1-1093108838
Navi1982
2004-08-21 21:20
2004.09.05
Cos(x) и Sin(x) -- в чём дело?


1-1092800406
BoxTer
2004-08-18 07:40
2004.09.05
Минимаксный метод...


3-1092219346
Алексей
2004-08-11 14:15
2004.09.05
Подключение программы к запароленным таблицам


1-1092759710
appendix
2004-08-17 20:21
2004.09.05
4 байтная форма представления вещественных чисел


11-1080221274
user
2004-03-25 16:27
2004.09.05
Как поднять скрол в верхнюю позицию не мышкой а програмно?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский