Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Уменьшение веса php файлов


Автор: Guide 30.7.2008, 07:34
Хотелось бы узнать есть ли программы которые удаляют комментарии, переносы строк и переименуют длинные пользовательские переменные и константы в короткие?

Автор: ZuLLeR 30.7.2008, 07:54
Есть это руки))) а смысл объясни всего этого??? коменты я считаю нужны, что бы потом самому не напрягаться и знать что и где) а если длинные переменные то пиши их короче сам) а так <удалено!> есть такие проги или нет)


M
PARROT
В следующий раз накажу за МАТ  :crazy

Автор: krundetz 30.7.2008, 08:12
Проги есть, преднаначины они для оптимизации в сторону уменьшения трафика, тоесть они пропускают через себя то что выдает на выходи скрипт и отправляют ео пользовательскому браузеру.

Есть и проги которые делают это же с самими скриптами но помоему это неактуально в отичие от первого варианта.

Автор: sTa1kEr 30.7.2008, 08:32
http://php.net/php-strip-whitespace
Цитата

(PHP 5)

php_strip_whitespace — Return source with stripped comments and whitespace



Добавлено через 1 минуту и 59 секунд
С переименовыванием переменных я бы на вашем месте был поосторожнее, т.к. это может привести к неработоспособности кода.

Автор: Guide 30.7.2008, 08:58
Данная прога нужна чтобы уменьшить размер файлов. Комменты и другие вещи не будут нужны. А насчёт переименовывания, думаю если прога умная, то не составит труда отличить одни переменные от других, пропускать резервированные переменные и не трогать операторы.

Автор: skyboy 30.7.2008, 09:31
Цитата(Guide @  30.7.2008,  07:58 Найти цитируемый пост)
Данная прога нужна чтобы уменьшить размер файлов.

с каких это пор дисковая квота съедается РНР-скриптами? у тебя они на пару десятков мегабайт?
если для закачки по ФТП, то можешь предварительно паковать в архивы.

Автор: Guide 30.7.2008, 09:38
skyboy, У я сделал галерею. Кода получилось много. Весь скрипт весит 11.2мб

Автор: bars80080 30.7.2008, 10:57
Цитата(Guide @  30.7.2008,  09:38 Найти цитируемый пост)
11.2мб 
 это ж сколько времени ты его набирал?

Автор: Guide 30.7.2008, 11:05
2 месяца. Но вопрос не в этом. В проекте очень много комментарий. Чуть ли не на каждую функцию и констрункцию. Плюс ко всему почти все переменные имеют вид $contentDescription или $template-menuArray...думаю можно их сократить ло $cD или $t-mA...

Автор: HackMan 30.7.2008, 11:35
11.2 мегабайта это имеется в виду скрипты + картинки на 11мб?

Цитата(Guide @  30.7.2008,  11:05 Найти цитируемый пост)
думаю можно их сократить ло $cD или $t-mA... 

А вот представь, что тебе понадобится добавить какую-нибудь функцию... Как думаешь, за сколько часов справишься?)

Собственно, как убрать комментарии, sTa1kEr уже написал.А если так хочется поменять имена переменных - в любом текстовом редакторе Edit - Replace - All

Автор: Guide 30.7.2008, 11:55
11мб php файлов!!!  smile 
Мне просто больше не нужно будет возиться с этим кодом на серваке. А на локалке, есть backup...
Так что хорошо бы найти прогу которая будет делать это всё автоматизированно.

Цитата

Собственно, как убрать комментарии, sTa1kEr уже написал.А если так хочется поменять имена переменных - в любом текстовом редакторе Edit - Replace - All


А ты представь сколько там переменных!!  smile 
Посоветуй тогда на Delphi как регулярками разрулить проблему с переименовыванием переменных...я сам набросаю прогу.

Автор: bars80080 30.7.2008, 12:21
может крамолу для тебя скажу. но ты не пробовал сделать скрипт галлереи раз в 10-100 меньше.
я вот смотрю реальный вес e107, mambo - 9, 9.5 Мб, но это ведь целая cms! со всеми их темплейтами и скинами

Автор: ZuLLeR 30.7.2008, 12:30
Цитата(ZuLLeR @ 30.7.2008,  07:54)
Есть это руки))) а смысл объясни всего этого??? коменты я считаю нужны, что бы потом самому не напрягаться и знать что и где) а если длинные переменные то пиши их короче сам) а так <удалено!> есть такие проги или нет)

хз это мат? Может я имел ввиду хто знает? smile 

Автор: americanets 30.7.2008, 12:51
Guide, eaccelerator , apc ... 

Цитата

скрипт весит 11.2мб
 

ты не в битриксе работаешь ? smile 

Автор: krundetz 30.7.2008, 12:53
Цитата(bars80080 @ 30.7.2008,  12:21)
может крамолу для тебя скажу. но ты не пробовал сделать скрипт галлереи раз в 10-100 меньше.
я вот смотрю реальный вес e107, mambo - 9, 9.5 Мб, но это ведь целая cms! со всеми их темплейтами и скинами

Да и их в размере можно здоров ужать но не за счет сокрашения символов а за счет более рациональной компоновки

Автор: Guide 30.7.2008, 13:04
Цитата(americanets @  30.7.2008,  12:51 Найти цитируемый пост)
ты не в битриксе работаешь ?

Нет...

Цитата(bars80080 @  30.7.2008,  12:21 Найти цитируемый пост)
может крамолу для тебя скажу. но ты не пробовал сделать скрипт галлереи раз в 10-100 меньше.
я вот смотрю реальный вес e107, mambo - 9, 9.5 Мб, но это ведь целая cms! со всеми их темплейтами и скинами

Галерея того стоит. Пользовательская часть весит меньше. (1.2мб). Админка весит многа. (10мб). Зато функций многа. Например большая часть ушла на эти фичи: Пять видов кропа и ресайза (Интелектуальная система сделано на jQuery + моя либа(js+php). Выделение лиц и персон на фотке. четыре вида просмотра. (thumbs, filmstrip, icon, slideshow), exif, watermark короче туча всякой всячины....

Автор: americanets 30.7.2008, 13:12
Цитата(Guide @  30.7.2008,  14:04 Найти цитируемый пост)
Пять видов кропа и ресайза (Интелектуальная система сделано на jQuery + моя либа(js+php). Выделение лиц и персон на фотке. четыре вида просмотра. (thumbs, filmstrip, icon, slideshow), exif, watermark короче туча всякой всячины.... 


тогда советуй юзерам пользовать акселератор, он подрежет все ненужное при работе системы

Автор: Mal Hack 30.7.2008, 13:34
А у вас скрипт  на модули не разделен?
Удаление пробелов, комментариев - нарушение технологии. Как вы потом что-то править будете.

Если вы сделали программу, то не важно сколько она весит, главное чтобы она работала как надо и была оптимальной..

Автор: Fortop 30.7.2008, 13:36
Цитата(Guide @  30.7.2008,  11:55 Найти цитируемый пост)
11мб php файлов!!!  

Шутишь? Подскажи-ка что они делают?

И, да,  200 символов в минуту * 60 минут * 24 часов * 60 дней = 16,47Мб smile

Говоришь 16ч в день два месяца галлерею кодил? smile

Автор: bars80080 30.7.2008, 13:57
да нет, много готовых классов, скриптов + своё, всё вместе - вот и результат. но всё равно, чересчур

Автор: Guide 30.7.2008, 14:01
Нет конечно, до этого у меня были свои наработки...я просто за два месяца всё своё и чужое собрал в кучу. 

Mal Hack, Я же говорю что править на серваке не буду. Если что на локалке. А потом выгружу на сервак. Нормальный и читабельный код у меня будет под рукой...

Цитата

но всё равно, чересчур

Да наверно перебрал, через месяц проведу оптимизацию кода, урежу все лишние строки. А пока нужно сжимать.

Автор: Mal Hack 30.7.2008, 14:09
Guide, не нужно ничего сжимать. Это асбурд. Либо ошибка проектирования, либо не разбиение на модули...
Сжиманием подобным, вы добьетесь сжатия максимум на 5-6%... Это нонсенс...

Автор: Fortop 30.7.2008, 14:15
Цитата(Guide @  30.7.2008,  14:01 Найти цитируемый пост)
Да наверно перебрал, через месяц проведу оптимизацию кода, урежу все лишние строки

Боюсь там нет лишних строк. 

Mal Hack, прав. Скорее всего ошибка в проектировании.

Автор: Gold Dragon 30.7.2008, 14:26
Цитата(Mal Hack @  30.7.2008,  15:09 Найти цитируемый пост)
Сжиманием подобным, вы добьетесь сжатия максимум на 5-6%... 
и то при условии хорошего комментирования smile

Автор: Guide 30.7.2008, 14:27
Mal HackFortop,  smile 
Если бы ошибка в проектировании. У меня всё разделено на модули. Просто сколько один арбуз весом 10кг не дели на кусочки, всё равно весить она будет 10кг. smile
Так что сжатие хочу!  smile 

Автор: Mal Hack 30.7.2008, 14:32
Цитата(Guide @  30.7.2008,  15:27 Найти цитируемый пост)
Если бы ошибка в проектировании.

Вы меня извините, конечно, но это как отче наш. Я готов поспорить, что у меня EXE с теми же функциями на сях будет весить в два раза меньше вашего скрипта...

У вас очевидная ошибка проектирования. Уж в чем она выражена - второй вопрос.

Автор: Gold Dragon 30.7.2008, 14:43
ну ведь в любос случае что запускается и обрабатывается не все 11 метров, 11 - это весь проект, а реально работает не так уж и много. И неужели сервер такой медленный что сокращение размера на 5% это значительно ускорит?

Автор: Guide 30.7.2008, 15:54
В общем всем спасибо. Попробую сам найти.

Автор: skyboy 30.7.2008, 16:02
с обфускацией под РНР неплохо должен справляться http://www.zend.com/en/products/guard/
из Википедии узнал про http://www.phpdefender.com/ и http://pobs.mywalhalla.net/.
но право слово, я советую сначала проанализировать собственный код на выявление часто используемых алгоритмов, не вынесенных в отдельные функции.

Автор: sTa1kEr 30.7.2008, 22:17
Цитата(Guide @  30.7.2008,  09:58 Найти цитируемый пост)
то не составит труда отличить одни переменные от других

Код

extract($someArray);
sumeFunc($key1, $key2, $key3);

Переименуйте переменный и логика приложения будет нарушена.

Цитата(Guide @  30.7.2008,  10:38 Найти цитируемый пост)
Весь скрипт весит 11.2мб 

У вас вся логика построена на копи-пасте? По моему, это единственный случай когда такое возможно.

Автор: krundetz 31.7.2008, 14:53
Цитата(Guide @ 30.7.2008,  14:27)
Mal HackFortop,  smile 
Если бы ошибка в проектировании. У меня всё разделено на модули. Просто сколько один арбуз весом 10кг не дели на кусочки, всё равно весить она будет 10кг. smile
Так что сжатие хочу!  smile

А вот сдесь вы абсолютно неправы и сравнение ваше в корне неверно. Деление на модули подразумевает как раз что один модуль может использовать другой модуль для выполнения каких то операций если они(операции в нем реализованы), а не дублировать уже имеющийся функционал. Тоесть уже созданный функционал одного модуля может многократно использоваться в других. В общем деление на модули это намного более абстрактная вешь чем разрезание окорока на части. С десь более подходит сровнение с использованием в машиностроение  стандартных крепежных элементов, тоесть если вы имеети болт диаметром столько то с шагом резбы столько то в одной конструкции и он у вас по какимто причинам испортился то вы можете сходить в магазин и сказать мне вот такой и такой то болт нужен, и выпушеный совершенно другой компанией этот болт встанет на место как родной. В программирование это называется API. Не забывайте что программирование это инженерная дисциплина. И сдесь сильна унификация. Иоесть зачем мне разрабатывать новое если здесь будет прекрасно работать старое.

Автор: Fortop 1.8.2008, 09:27
Цитата(sTa1kEr @  30.7.2008,  22:17 Найти цитируемый пост)
У вас вся логика построена на копи-пасте? По моему, это единственный случай когда такое возможно.

Не совсем.

Мы тут вчера подумали, и решили... что модуль распознавания речи, а также блондинок и брюнеток в видеорядах - если он написан на чистом PHP - может иметь такие размеры...

Автор: Fiyanov 4.8.2008, 11:47
По теме:

Сокращение имени переменных конечно поможет выиграть килобайты, а в вашем случае может и мегабайты... НО! Дело в том что исходный ведь код РНР не передаёться клиенту!!! Он не качает ваши длинные переменные! Их обрабатывает только РНР интерпритатор! Поетому это всё ГОН если вы думаете, что намного быстрее скрипт заработает с переменными обладающими коротким наименованием. Это бред. Спасибо.

Добавлено через 1 минуту и 23 секунды
На паскале напишите прогу которая парсит тхт файл, удаляет закоментаринные строчки и пустые строки и всё...

Добавлено через 1 минуту и 57 секунд
Или на РНР и напишите... он в парсинге силён...

Автор: bars80080 4.8.2008, 12:05
Цитата(Fiyanov @  4.8.2008,  11:47 Найти цитируемый пост)
Поетому это всё ГОН если вы думаете, что намного быстрее скрипт заработает с переменными обладающими коротким наименованием
 он не за скорость исполнения беспокоился, а за объём трафика при перекидывании и метраж доступный на сервере

Автор: HackMan 4.8.2008, 20:03
Интересно, для какого (даже халявного) сервера критичны скрипты на 11 мб, при том,что эти скрипты будут работать с графикой, которая, наверняка, будет храниться по соседству?

Автор: bars80080 4.8.2008, 20:22
для меня критичны были бы. я даже боюсь узнать, сколько всего у меня на бесплатном хостинге места. особенно учитывая, что я туда уже закидал мегов 70 фоток, и то вовремя остановился, а так бы ещё 300 запульнул



вообще 11 мегов скрипта на галлерею предполагает раздутость остального кода

Автор: Fiyanov 5.8.2008, 09:14
Цитата

он не за скорость исполнения беспокоился, а за объём трафика при перекидывании и метраж доступный на сервере

Всё равно ГОН. Клиенту пойдёт только HTML. Если у него 12 метров вычислений (И вправду размер улыбает) то беспокоиться за трафик не стоит. За место может и стоит. Мне кажеться что у автора весь сайт весит 12 метров...  12 метров текста - это извините меня художественное произвидение уже.  smile  

Автор: bars80080 5.8.2008, 09:23
Цитата(Fiyanov @  5.8.2008,  09:14 Найти цитируемый пост)
Всё равно ГОН. Клиенту пойдёт только HTML. Если у него 12 метров вычислений (И вправду размер улыбает) то беспокоиться за трафик не стоит

знаешь, у меня дома 10кБ/с скорость, это значит заливать через фтп в лучшем случае придётся 20 минут. а если несколько раз? я б заманался

Автор: HackMan 5.8.2008, 09:28
bars80080, советую пользоваться архиваторами  smile 
Целые сайты в архиве заливаются одним файлом, что через FTP в сто раз быстрее, чем заливать каждый скрипт по отдельности и сводит вероятность раъединения соединения к минимум. А потом остаётся пустяковое дело - разархивировать это всё. Разархивация, как правило, выполняется практически мгновенно, даже если сайт состоит из сотни скриптов.

И набор скриптов на 10 мб будут занимать в архиве не более 100 кб. Зальются за 10 сек  smile 

Автор: bars80080 5.8.2008, 09:48
да? а можна поподробней, ибо gzip у меня точна не работает, как там реализовать процедуру?



хотя я кстати, скрипты метрами не загоняю, а вот jpg, что архивируй, что не архивируй...

Автор: HackMan 5.8.2008, 10:15
Цитата(bars80080 @  5.8.2008,  09:48 Найти цитируемый пост)
а вот jpg, что архивируй, что не архивируй

Про jpg речь не идёт. Тут грозились, что 12 мб - это чисто кода  smile  Да и как ни крути - 1 архив на 100 метров зальётся в разы быстрее, чем 100 картинок по метру.

Цитата(bars80080 @  5.8.2008,  09:48 Найти цитируемый пост)
да? а можна поподробней, ибо gzip у меня точна не работает, как там реализовать процедуру?

Ну кроме gzip существуют ещё bzip и zip, как минимум  smile 
Как вариант - http://php.net/zip

У меня есть скрипт (точнее 2 файла), реализованный на php, который разархивирует обычный zip-архив. Если интересно - могу скинуть в PM

Автор: Fiyanov 6.8.2008, 06:51
Цитата

Про jpg речь не идёт. Тут грозились, что 12 мб - это чисто кода  


 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)