нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 20/01/12 в 21:27 |
Заметил, что становится всё меньше трейд скриптов на CGI. Это связано либо со сложностями генерить версии под конкретные OS, либо с простотой кодинга под веб. Не думаю, что те разработчики, что перешли с cgi, сделали это из побуждений прийти к высшему быстродействию.
Как вы считаете, можно ли одинаковые алгоритмы реализовать на php с ionCube и не потерять при этом быстродействия? Ведь раньше именно быстродействие был конёк cgi.
|
|
|
|
С нами с 25.05.03
Сообщения: 247
Рейтинг: 448
|
Добавлено: 20/01/12 в 22:00 |
Неужели сильно меньше? Трейдовую часть делают на С++ а админку на ПХП, кристалл, к примеру.
Я не программист, но когда запрос идет через посредника, коим в данном случае является ПХП интерпретатор, то заставить эту схему быстрее работать, чем тоже на С++ нельзя.
Интересно послущать мнение специалистов также.
|
|
|
|
Web Developer С++
С нами с 25.11.01
Сообщения: 859
Рейтинг: 759
|
Добавлено: 21/01/12 в 04:08 |
На С++ писать гораздо сложнее, чем на PHP. На всё PHP проще и дешевле получается, а производительности вполне хватает - машины стали мощнее.
Раньше, когда на С++ писали, БД (MySQL) старались не использовать, а сейчас они почти везде используются. Опять же, писать с использованием БД проще и быстрее.
Раз используется БД, то на неё кладется большинство вычислений и разница в быстродействии между языками уменьшается.
Все стремится к упрощению, быстро написал, продал, получил деньги. В С++ этот процесс длиннее.
Быстродействие страдает конечно, но когда говоришь заказчику, что на PHP+MySQL будет стоит в 3+ раза дешевле чем на С++, он в основном соглашается на PHP.
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 21/01/12 в 04:43 |
Я в принципе так и думал.
|
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 25/01/12 в 02:32 |
Vyacheslav писал: | Как вы считаете, можно ли одинаковые алгоритмы реализовать на php с ionCube и не потерять при этом быстродействия? Ведь раньше именно быстродействие был конёк cgi. |
Тут ответ довольно очевиден - нет нельзя. И ionCube не поможет, потому что это ни что иное как сильно упрошенная php-виртуальная машина. Т.е. если говорить человеческим языком, то ionCube просто переводит человеко-понятный код программы, в программу, которая понятна только ЕМУ. Это именно программа понятная ему, а не процессору компьютера, т.е. та же самая интерпретация. Соответственно, ни какого ускорения она не дает.
Касаемо реплики предыдущего оратора. Написано не понятно. Что значит писать сложнее? Мне, который на С++ пишет 15 лет или подростку, который пишет на php 2 дня? Кому из нас писать на С++ сложнее?
Скорость и сложность написания зависит не от языка программирования, а от опыта, набитости руки, а так же наличия БИБЛИОТЕК и правильной организации ПРОЦЕССА написания. Если "правильный" человек, все делает "правильно", то все разрабатывается в "правильные сроки" и без сложностей . Т.е. суть простая - за счет библиотек более высокого уровня, можно на С++ писать в стиле php (спасибо большой гибкости языка и мощной ООП составляющей, которая делает такие трюки возможными).
DF™ писал: | но когда говоришь заказчику, что на PHP+MySQL будет стоит в 3+ раза дешевле чем на С++, он в основном соглашается на PHP. |
Такая серьезная разница говорит скорее всего о том, что в вашей команде не налажены С++ разработки. Потому что когда процесс производства (программного) продукта налажен и технологичен, то выбор языка (с точки зрения скорости и стоимости разработки) уже почти не играет роли. Профессиональная и слаженная С++ - команда напишет напишет тот же продукт быстрее и эффективнее (а значит, в конечном счете, и дешевле), чем только что собравшаяся команда PHP-новичков. Именно по этому очень часто, выбор технологии создания продукта, зависит ни только и не столько от условий задачи, сколько от навыков команды его реализующего.
Последний раз редактировалось: ano (25/01/12 в 23:27), всего редактировалось 1 раз
|
|
Mac, iOS (iPhone, iPad), Android, Win, Linux разработки. Большой опыт, отличный результат.
|
2
|
|
|
Web Developer С++
С нами с 25.11.01
Сообщения: 859
Рейтинг: 759
|
Добавлено: 25/01/12 в 08:58 |
ano писал: | Касаемо реплики предыдущего оратора. Написано не понятно. Что значит писать сложнее? Мне, который на С++ пишет 15 лет или подростку, который пишет на php 2 дня? Кому из нас писать на С++ сложнее?
|
Речь идет об объективных факторах, а не о профессионалах и любителях.
1. PHP язык более высокого уровня чем С++ (PHP дальше от железа чем С). В PHP нет необходимости делать кучу вещей: задавать тип переменных, выделять/очищать память (да, нормальной очистки там и нету), нет указателей, нет многопоточности, программа не падает при заезде на память и др.
2. На С++ будет больше кода чем на PHP, как не крути с библиотеками или без. Как гласит одно из правил программирования: "При увеличении размера программы вдвое сложность может возрасти в четыре раза".
Есть куча объективных факторов утверждать что С++ сложнее PHP.
Какие бы ты не использовал библиотеки и команду.
ano писал: |
Скорость и сложность написания зависит не от языка программирования, а от опыта, набитости руки, а так же наличия БИБЛИОТЕК и правильной организации ПРОЦЕССА написания. Если "правильный" человек, все делает "правильно", то все разрабатывается в "правильные сроки" и без сложностей .
|
Это субъективный фактор - зависит от человека, а не от языка!
ano писал: |
Т.е. суть простая - за счет библиотек более высокого уровня, можно на С++ писать в стиле php (спасибо большой гибкости языка и мощной ООП составляющей, которая делает такие трюки возможными).
|
Я не припомню таких библиотек на С++ в свободном доступе, с радостью посмотрел бы. Или ты предлагаешь их сначала самому написать, отладить и это время потом вычеркнуть из стадии разработки.
Главное, зачем писать на С++ в стиле PHP, смысл в этом какой?
На С++ используются свои методы которые быстрее работают. Если хочешь использовать PHP методы - так и используй PHP!
ano писал: |
Такая серьезная разница говорит скорее всего о том, что в вашей команде не налажены С++ разработки. |
Разница учитывает несколько факторов.
Если программа пишется на С++, то это не просто так, чтоб обидеть PHP.
Там используются более производительные С++ методы и оптимизация, вместо строковых функций работа с памятью, иногда многопоточность и др. Также и з/п С++ программиста выше чем программиста на PHP, а на С++ время уходит больше. Так что я назвал вполне адекватную цифру.
ano писал: |
Потому что когда процесс производства (программного) продукта налажен и технологичен, то выбор языка (с точки зрения скорости и стоимости разработки) уже почти не играет роли. Профессиональная и слаженная С++ - команда напишет напишет тот же продукт быстрее и эффективнее (а значит, в конечном счете, и дешевле), чем только что собравшаяся команда PHP-новичков. Именно по этому очень часто, выбор технологии создания продукта, зависит ни только и не столько от условий задачи, сколько от навыков команды его реализующего. |
Нельзя сравнивать профессионалов и новичков, это к языкам программирования не имеет отношение.
Профессиональная и слаженная PHP команда напишет веб задачу быстрее и дешевле, чем такая же С++ команда. Этому есть куча причин и практическое подтверждение по соотношению написанных скриптов!
|
|
|
|
С нами с 06.10.06
Сообщения: 964
Рейтинг: 742
|
Добавлено: 25/01/12 в 14:01 |
> а производительности вполне хватает - машины стали мощнее.
От давай хуйни говорить не будем )
я сам работаю админом на хостинге и вижу как твои мощные машини загибаются каждый день, да они стали мощнее но туда теперь разные уебаны вместо 10-20 доменов хуярят по 150-200 и потом стучат и говорят чето у меня сервер тормозит )) нет предела жлобству.
|
|
MyPublicDreams.com - Exclusive public paysite.
|
0
|
|
|
С нами с 24.06.10
Сообщения: 2686
Рейтинг: 543
|
Добавлено: 25/01/12 в 17:31 |
> Скорость и сложность написания зависит не от языка программирования, а от опыта, набитости руки, а так же наличия БИБЛИОТЕК
да всё это так, но c+stl+boost+loki+* полюбому дольше и сложнее чем похапэ из коробки, и данном случае понятия "дольше" и "сложнее" как нельзя лучше отражают ту самую суть, которую и должны обозначать;) DF там достаточно понятно написал имхо, ну а упомянутые 15 лет кодинга на сях, эт канешна респект, но в целом, для типовых задач веб-кодинга развивался именно похапэ, а не плюсы, и видимо потому, что оно действительно "проще"?)
> да они стали мощнее но туда теперь разные уебаны вместо 10-20 доменов хуярят по 150-200
конечно, вот же сволочи, так бы ты 10 лишних акков продал, и бабла б на этих уебанах поднял, а они такие только один покупают и теснятся там! полностью согласен - форменное жлобство!))
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 25/01/12 в 18:19 |
Vyacheslav писал: | Как вы считаете, можно ли одинаковые алгоритмы реализовать на php с ionCube и не потерять при этом быстродействия? Ведь раньше именно быстродействие был конёк cgi. |
Имхо пхп уже давно не упирается в быстродействие самого себя. Голый пхп переварит дикую тучу запросов без какого либо напряга.
Просто обычно не корректно сравнивают.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 25/01/12 в 21:51 |
DF™ писал: |
1. PHP язык более высокого уровня чем С++ (PHP дальше от железа чем С). В PHP нет необходимости делать кучу вещей: задавать тип переменных, выделять/очищать
память (да, нормальной очистки там и нету), нет указателей, нет многопоточности, программа не падает при заезде на память и др. |
Ну я же и говорю о технологичности, и налаживанию средств. Когда я пишу на С++ я то же не думаю о указателях и выделении памяти, для этого есть куча прекрасных средств.
Это и есть та часть технологичности и отлаживания процесса производства. И она делается один раз и используется в дальнейшем во всех проектах.
Форд, в начале прошлого столетия делал машины намного дешевле большинства своих конкурентов. За счет чего? За счет правильного подхода к процессу производства.
DF™ писал: | Есть куча объективных факторов утверждать что С++ сложнее PHP. |
Вот надо понимать разницу между сложностью языка как такового и сложностью разработки в конкретной ситуации.
Разговоры о том какой язык сложнее, это чистая академика , а когда мы говорим о сложности разработки - это уже реальная жизнь в которой встает куча вопросов
и один из них - кто разрабатыает.
DF™ писал: | Там используются более производительные С++ методы и оптимизация, вместо строковых функций работа с памятью, иногда многопоточность и др. |
То о чем ты пишешь это вопрос технологичности вашей команды, пойми . Если все сделано правильно это ни как не должно увеличивать расходы.
DF™ писал: | Также и з/п С++ программиста выше чем программиста на PHP, а на С++ время уходит больше. |
Не в 3+ раза это 100%. У меня есть знакомые (не один) которые будучи PHP-программистами, получают больше своих С++ - коллег при примерно одном уровне опыта.
Когда мы говорим о зп. это еще меньше коррелирует со сложностью языка программирования. Гораздо большее значение имеют современные тренды, особенности проектов, его инвесторов и заказчиков. За примерами далеко ходить не надо - Java разработчики получают больше чем C++ разработчики, хотя с той же самой академической точки зрения, С++ гораздо сложнее Java.
mr. snatch писал: | Профессиональная и слаженная PHP команда напишет веб задачу быстрее и дешевле, чем такая же С++ команда. |
Это утверждение абстрактное. Потому что все зависит от проекта, от его специфики.
mr. snatch писал: | да всё это так, но c+stl+boost+loki+* полюбому дольше и сложнее чем похапэ из коробки ... |
mr. snatch, ты не совсем понял суть того, что я написал выше. "дольше и сложнее" кому? Что? Ты можешь говорить о себе конкретно, что тебе проще использовать php из коробки. Или можешь говорить об академической стороне дела, не больше.
|
|
Mac, iOS (iPhone, iPad), Android, Win, Linux разработки. Большой опыт, отличный результат.
|
1
|
|
|
Web Developer С++
С нами с 25.11.01
Сообщения: 859
Рейтинг: 759
|
Добавлено: 25/01/12 в 23:42 |
ano: Так можно долго спорить сотрясая воздух, давай наглядно докажи.
Вот простая задачка на PHP (https://www.master-x.com/forum/postings/1913040/&highlight=file_get_contents#1913040 )
Цитата: | есть *txt файл. в файле на каждой строчке имееются урлы и дески в таком виде:
url1|desc|desc|url2
требуется в каждой строчке удалить url1.
|
решение
Код: | <?
$intext = file_get_contents("infile.txt");
$outtext = "";
$rows = explode("\n",$intext);
foreach ($rows as $row) {
$elements = explode("|",$row);
unset($elements[0]);
$outtext .= implode("|",$elements)."\n";
}
file_put_contents("outfile.txt",$outtext);
?> |
Напиши на С++, с использованием стандартных библиотек (тут ведь только стандартные функции используются) и сравним сложность и размер кода.
На PHP это можно сделать минут за 10.
Сделаешь, посмотрим сколько людей ты убедишь что это просто.
|
|
|
|
С нами с 24.06.10
Сообщения: 2686
Рейтинг: 543
|
Добавлено: 26/01/12 в 00:29 |
ну для чистоты эксперимента и наглядности, давайте перепишем в одну строку ;)
Код: |
<?php
foreach (array_map('trim', file($argv[1])) as $row) file_put_contents('out_' . $argv[1], implode('|', array_splice(explode('|', $row), 1)) . "\n", FILE_APPEND);
?>
|
/usr/bin/php data.txt
> ты не совсем понял суть того, что я написал выше.
да не понял я вроди )
> "дольше и сложнее" кому? Что?
ну например мне, который не 15 конечно, но лет 7 стабильно на плюсах давно писал
|
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 26/01/12 в 03:12 |
Написано за 5 минут . Уверен, что этот код можно улучшить если подумать 10
Код: |
ifstream infile("infile.txt");
ofstream ofs("oufile.txt");
while (infile && !infile.eof()) {
string strIn; infile >> strIn;
const char* p = strpbrk (strIn.c_str(), "|");
if (p) ofs << p + 1 << endl;
}
ofs.close();
infile.close();
|
Ну и? Принципиальна ли разница? Зато какой прирост по быстродействию у С++ кода. Ибо пока в PHP вы читаете все в массивы, потом эксплодите, потом имплодите, пораждая новые массивы, уходит уйма времени.
Я уж не говорю про код mr. snatch-a, который производит столько операций вывода (записей в файл), сколько строк во входном файле. Т.е. если их будет много, программа задумается очень на долго.
Если бы я увидел такой код, то программиста, который бы его написал я:
a) Хорошо бы премировал, за отличные знания языка.
б) Уволил. - потому, что понять новому программисту что тут написано, будет не тривиально. Ну и за "сказочное" быстродействие данного кода.
Где же топикстартер? Хоть бы сказал чего!
|
|
|
|
Web Developer С++
С нами с 25.11.01
Сообщения: 859
Рейтинг: 759
|
Добавлено: 26/01/12 в 05:41 |
ano писал: | Ну и? Принципиальна ли разница? Зато какой прирост по быстродействию у С++ кода. Ибо пока в PHP вы читаете все в массивы, потом эксплодите, потом имплодите, пораждая новые массивы, уходит уйма времени.
|
Разница есть, в PHP тоже можно было использовать подобный алгоритм, без массивов и уймы времени, как ты пишешь. Просто автор этого не сделал (автор не я).
Конечно, ты молодец, красиво решил задачку, поменял алгоритм! Но сравнивать код двух разных алгоритмов особого смысла нет - нельзя провести аналогии между языками. Далеко не всегда получается использовать другой упрощенный алгоритм, чаще все наоборот. Если бы ты переписал эту программу на С++, а не использовал другой алгоритм, код был бы другим и гораздо больше. На С было бы быстрее и еще значительно больше кода.
Также, ты написал на чистом С++, немало людей считающих себя С++ программистами, даже не сразу поймут что это С++ вообще.))) Для большинства программистов С++ это С с небольшими вкраплениями С++. Большинство программ пишутся именно на С (сколько я не скачивал исходников, С++ методы редко кто использует, специально сейчас глянул исходники memcached-1.4.5.tar.gz, openssl-1.0.0d.tar.gz, fcgi-2.4.0.tar.gz...). Почему так?! Ну, наверное, потому что С быстрее С++, а еще С++ очень "простой" и "понятный" язык, программисты регулярно матерят его от восторга на различных форумах. Мало кто захочет вникать в С++ чтоб написать себе сайт, для этого есть другие языки.
Ну, зато ты показал, что хороший программист, тебе же это главное)))
|
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 26/01/12 в 06:13 |
DF™ писал: | Конечно, ты молодец, красиво решил задачку, поменял алгоритм! |
Я ни чего не меня. Ты предложил алгоритм и предложил посоревноваться - я предложил свое решение.
DF™ писал: | Также, ты написал на чистом С++ |
Ну так мы же о нем говорили, а не о С.
DF™ писал: | немало людей считающих себя С++ программистами, даже не сразу поймут что это С++ вообще.))) |
Рекомендую держаться от таких "программистов" подальше ;)
А код написаный тут совершенно банальный.
DF™ писал: | Ну, зато ты показал, что ты хороший программист, тебе же это главное))) |
Нет, я не планировал тут показывать свои навыки программиста,ты ведь "бросил перчатку".
|
|
Mac, iOS (iPhone, iPad), Android, Win, Linux разработки. Большой опыт, отличный результат.
|
0
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 26/01/12 в 07:12 |
Оффтопик: разве ioncube что то ускоряет, он вроде только чтоб скрыть исходники, да лицензию приделать?
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 26/01/12 в 08:47 |
mr. snatch писал: | ну для чистоты эксперимента и наглядности, давайте перепишем в одну строку ;)
Код: |
<?php
foreach (array_map('trim', file($argv[1])) as $row) file_put_contents('out_' . $argv[1], implode('|', array_splice(explode('|', $row), 1)) . "\n", FILE_APPEND);
?>
| |
Жесть, бля.
Вот так надо писать:
Код: | file_put_contents( $file, trim( preg_replace( '#(\s[^|]+\|)#', "\n", "\n".file_get_contents( $file ) ) ) ); |
100к строк проходит за пол-секунды. Интересно сколько на сях нынче?
|
|
|
|
С нами с 22.05.04
Сообщения: 268
Рейтинг: 251
|
Добавлено: 26/01/12 в 12:17 |
|
|
|
|
Web Developer С++
С нами с 25.11.01
Сообщения: 859
Рейтинг: 759
|
Добавлено: 26/01/12 в 13:41 |
Речь шла на чем проще писать под веб, а вы перешли к понтам уже.
Код: | <?php
echo("Field: ".(isset($_POST['field']? $_POST['field']: $_GET['field']));
?> |
С/С++ ...
Код: | <?php
foreach (array_map('trim', file($argv[1])) as $row) file_put_contents('out_' . $argv[1], implode('|', array_splice(explode('|', $row), 1)) . "\n", FILE_APPEND);
?> |
Для начала, это не соответствует ТЗ.
Даже при такой реализации, уверен, что PHP не будет много раз открывать и закрывать файл при добавлении строки, как это делал бы С. PHP рассчитан на любителей!
|
|
|
|
С нами с 22.05.04
Сообщения: 268
Рейтинг: 251
|
Добавлено: 26/01/12 в 16:22 |
вера в то что интерпретатор пхп умнее компилятора с++, как и в то что интерпретатор исправляет кривой код, ну или заказчик спец в системной архитектуре, неожиданна
на самом деле в с++ коде ano - два потока одновременно открытых на чтение/ запись в цикле на каждую строку ... тут можно хорошо попасть по нагрузке на винт/ы если отсутствует или неоптимальна буферизация i/o. а размер то буфера не указан. 5 минут сказываются
удивительно что никто не обратил внимание на это и не исправил архитектуру решения в сторону принудительной буферизации. но объясняет почему мне приходится сталкиваться с задачами по оптимизации кода под нагрузку
|
|
Нестандартные задачи. Кастом программинг на ПХП. Оптимизация стороннего кода. Недорого, недешево.
|
0
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 26/01/12 в 16:52 |
rx писал: | но объясняет почему мне приходится сталкиваться с задачами по оптимизации кода под нагрузку |
Не объясняет. Это была соревновательная задачка, демонстрирующая лишь саму идею о том, что на С++ можно то же и быстро и эффективно писать. Так что говорить про какую либо СЕРЬЕЗНУЮ оптимизацию в данной ситуации просто смешно конечно. Цель была совсем иной.
Последний раз редактировалось: ano (26/01/12 в 17:51), всего редактировалось 2 раз(а)
|
|
Mac, iOS (iPhone, iPad), Android, Win, Linux разработки. Большой опыт, отличный результат.
|
0
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 26/01/12 в 16:57 |
freeek писал: | разве ioncube что то ускоряет, он вроде только чтоб скрыть исходники, да лицензию приделать? |
В принципе может наверно ускорять, смотря как оно сделано внутри.
|
|
Mac, iOS (iPhone, iPad), Android, Win, Linux разработки. Большой опыт, отличный результат.
|
0
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 26/01/12 в 17:27 |
rx писал: | + регулярки никогда не были быстрыми. |
Эту задачу на пыхе быстрее не решить.
|
|
|
|
С нами с 24.06.10
Сообщения: 2686
Рейтинг: 543
|
Добавлено: 26/01/12 в 19:13 |
> Жесть, бля. icon_smile.gif
это не жесть, а пример использования функций работы с массивами в ПЫХе, когда можно сделать в одну строку!)
> Не объясняет. Это была соревновательная задачка, демонстрирующая лишь саму идею о том, что на С++ можно то же и быстро и эффективно писать.
она демонстрирует только то, как можно в плюсах работать с потоками и строками )
и вообще, конкретно этот пример ничего не решает, в силу отсутствия сколь-либо серьёзных и комплексных структур данных, их создания и управления, да и так далее
По таким кусочкам кода, почему на ПЫХе писать быстрее, показать нельзя и вы сами это понимаете, но даже и в этом случае, было предложено три возможных решения, каждое из которых показывает ту или иную сильную сторону похапэ, которые в сумме и делают пых тем самым средством создания именно веб-приложений, как инструментом более быстрым в процессе разработки, более простым и менее замороченным для своей подниши применения, и думаю, "имхо" здесь ставить необязательно, так как сие является всем и без того само-собой разумеющимся фактом)
|
|
|
|
С нами с 21.02.11
Сообщения: 50
Рейтинг: 30
|
Добавлено: 27/01/12 в 17:28 |
mr. snatch писал: | > ... и думаю, "имхо" здесь ставить необязательно, так как сие является всем и без того само-собой разумеющимся фактом) |
Сильно сказал, а главное аргументированно!
|
|
Mac, iOS (iPhone, iPad), Android, Win, Linux разработки. Большой опыт, отличный результат.
|
0
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
|
Спонсор раздела
|