|
2.3, Anik (?), 12:29, 14/12/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
Может тогда уж сразу переходить на HHVM и не ждать PHP 8?
| |
|
3.46, Keltanas (?), 17:05, 15/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
А вы пробовали использовать его в продакшене не перезапуская каждые пол часа?
| |
3.48, SubGun (??), 08:11, 17/12/2015 [^] [^^] [^^^] [ответить]
| –1 +/– |
Он валится от каждого чиха. Там, где php просто в лог ошибку пишет, hhvm падает совсем. Это ппц как тупо.
| |
|
|
1.5, Аноним (-), 12:39, 14/12/2015 [ответить] [﹢﹢﹢] [ · · · ]
| –10 +/– |
О как! Слышал от знакомого пхпешника, что скорость PHP уже можно сравнить с С++. А HHVM выходит побыстрее С++ будет. =)
| |
|
2.6, Аноним (-), 12:45, 14/12/2015 [^] [^^] [^^^] [ответить]
| +41 +/– |
> Слышал от знакомого пхпешника, что скорость PHP уже можно сравнить с С++
С кодом на C++, написанным пехапешником? Верю.
| |
2.8, Аноним (-), 13:48, 14/12/2015 [^] [^^] [^^^] [ответить]
| +8 +/– |
Лет десять назад, кажется, в моде было утверждение, что Java код на ассемблере обгоняет.
| |
|
3.9, гость (?), 13:52, 14/12/2015 [^] [^^] [^^^] [ответить]
| +4 +/– |
Код написанный на С++, обгоняет сам себя, переписанный на PHP. О, как!
| |
3.15, rob pike (?), 14:29, 14/12/2015 [^] [^^] [^^^] [ответить]
| –4 +/– |
Смотря какой код. За счет JIT в определенных случаях запросто может обгонять.
| |
|
4.21, Аноним (-), 15:09, 14/12/2015 [^] [^^] [^^^] [ответить]
| +7 +/– |
JIT'ов написаны уже сотни, но что-то на практике этих "определйнных условий" так ни у кого и не наступило. Забудьте, никогда никакие JITы, а тем более в динамически типизированных языках не обгонят нормальный скомпилированный код.
| |
|
3.22, Нимано (?), 15:23, 14/12/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Лет десять назад, кажется, в моде было утверждение, что Java код на
> ассемблере обгоняет.
Особенно если его написал тот же жабо-программист )
В 2005 уже был GCC4.
Обогнать его или интеловский/мсовский конечно было можно, но отнюдь уже не "дуриком" и в основном на SIMD.
За 2005 не скажу, но в 2009, после вдумчивой оптимизации (т.е. изучения документации интеля к конкретному цпу) можно было выжать 10-12 дополнительных процентов. Правда, ЧСХ – для этой самой конкретной модели, т.к. для других производительность падала на этот самый десяток процентов )
| |
|
4.36, anonymous (??), 22:34, 14/12/2015 [^] [^^] [^^^] [ответить]
| +3 +/– |
Да-да. Как-то пришло ко мне одно чудо с заявой что его программа на жабе быстрее эквивалента на C.
Ничего не сказала рыбка, лишь посмотрела на вызовы strlen() в условии цикла for() и ушла в глубокое море.
| |
|
|
2.47, Sen (?), 15:00, 16/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Бесспорно, взять PHP и сравнить эту программу с C++ на каком нибудь IBM PC/AT 286... PHP будет опережать код на C++!
| |
|
1.10, Аноним (-), 14:05, 14/12/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
т.е. движение в сторону типизации/строгости языка и внесения ясности, сказывается положительно на производительности приложений. Главное непереусердствовать.
Плюс, некоторые фреймворки, демонстрируют неплохие результаты. Видимо сказывается: грамотное использование новых возможностей языка, успешное применение подходов DI/IoC
Было бы небезинтересно взглянуть тесты на производительность для: массивов, строк, подключений модулей, объектов.
| |
|
2.13, Штунц (?), 14:22, 14/12/2015 [^] [^^] [^^^] [ответить]
| –1 +/– |
честно говоря, не ясно, зачем вообще нужны языки без строгой типизации
неужто всго лишь забота о программистах, которым трудно пару переменных объявить перед использованием?
| |
|
3.14, тоже Аноним (ok), 14:25, 14/12/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
Всего лишь забота о программистах, у которых в противном случае 10% типового скрипта будут занимать переводы строки в число и обратно.
| |
|
4.27, Crazy Alex (ok), 18:18, 14/12/2015 [^] [^^] [^^^] [ответить]
| –2 +/– |
А где они столько строкового ввода берут, на который отдельный код надо писать, а не циклы какие-нибудь? Насчёт "обратно" - тем более бред - код останется РОВНО таким же, как и был. А вообще - такие проблемы решаются удобным синтаксическим сахаром и вменяемым проектированием интерфейсов
| |
|
5.33, тоже Аноним (ok), 19:18, 14/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Ну, например, "сырые" данные из БД - это таки строки. Которые, вполне возможно, не требуется преобразовывать для вывода, однако по ходу дела нужно, скажем, отсортировать по одному из столбцов. И в столбце этом может оказаться текст, дата, числа - где целые, где нет... так вот, сейчас в РНР это неважно, сравнение работает без явного приведения. Строки и даты будут сравниваться лексически, числа - по значению. Теоретически неявное приведение может привести к полной неразберихе, но именно в той области, где применяется PHP, оно сплошь и рядом оправдано. Потому что, вполне возможно, даже неверное приведение - совсем не сломает систему, просто порядок сортировки будет не тем, который, возможно, ожидался.
| |
|
6.34, DeadMustdie (??), 20:47, 14/12/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну, например, "сырые" данные из БД - это таки строки.
Это вы где-то ядреной травы покурили.
Другое дело, что веб-разработка имеет дело в основном со строками, но вот базы данных тут совершенно ни при чем
| |
|
7.43, cmp (??), 03:07, 15/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Время программулек, которые брали строковые аргументы из шелл, конвертили как им удобно и жили сами в себе, давно ушло. Сейчас межпроцессорное коммуникации строятся на json'оподобных наречиях, а участниками обмена часто является ПО несовместимое на уровне типов переменных, поэтому передавать бинарные структуры как есть даже в голову никому не приходит.
| |
|
|
5.39, angra (ok), 00:05, 15/12/2015 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну вот тебе простая задача: получить от пользователя два числа, перемножить их и вывести результат. Два преобразования из строки в число, одно полезное действие и преобразование из числа в строку.
Теперь усложним задачу, при указании типа требуется различать не только строки и числа, но и числа разных типов, самый минимум byte/int/longint/float/double, а лучше больше десятка, известных процессору. Предусмотреть вариант с тем, что введенное или полученное число не влезет в указанный тип. Обеспечить максимальное сохранение мантисы. Все еще не понимаешь, зачем нужны языки в которых можно написать просто 'say $ARGV[0] * $ARGV[1]' ?
| |
|
6.41, Аноним (-), 02:15, 15/12/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
А теперь учти, что вместо чисел от пользователя может прийти мусор и нужно корректно среагировать а не упасть всем скриптом.
Может тогда будет понятно, чт простота выражения 'say $ARGV[0] * $ARGV[1]' это иллюзия.
| |
|
7.44, angra (ok), 03:39, 15/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Ты не поверишь, но никакого падения не произойдет:
$ perl -E 'say $ARGV[0] * $ARGV[1]' dsf dsf
0
| |
|
|
|
|
3.17, rob pike (?), 14:34, 14/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
> честно говоря, не ясно, зачем вообще нужны языки без строгой типизации
Сравните Template Haskell и reader macros в LISP - начнете догадываться.
| |
3.20, Нимано (?), 14:51, 14/12/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
> зачем вообще нужны языки без строгой типизации
Т.е. по вашему, Си не нужен – зато "да здравствует питон!"? 0_o
| |
3.23, Аноним (-), 15:55, 14/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Ага, вместо $var = $_GET['id']; нужно будет писать $var = (int)$_GET['id']; Трогедия.
| |
|
4.26, Crazy Alex (ok), 18:13, 14/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Например. И получать эксепшн, если оно не преобразуется. Вполне имеющий право на жизнь вариант.
| |
|
5.30, rob pike (?), 18:49, 14/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
И не получать если преобразуется. Приехало "улица Ленина", положили в $last_name, порадовались статической типиизации, которая всех спасла.
| |
5.31, ram_scan (?), 18:52, 14/12/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
Лучше выловить эксепшн, чем потом в продакшне выяснять какого полового органа оно задним числом погоду в унитазе посчитало из-за того что одна обезьяна проверку ввода не сделала, а вторая вместо десятичной точки запятую поставила.
| |
5.40, Аноним (-), 01:38, 15/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Ну если вы хотите быть уверены что там именно int, то сейчас вы делаете проверку на is_int(), а завтра будете ловить эксепшен.
| |
|
|
|
|
1.12, george (??), 14:19, 14/12/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А что это за такие мегапопулярные цмс системы OctoberCMS PyroCMS ? Обычные цмски вроде битрикса жумлы и прочей нечести на HHVM видимо не запускаются(в силу отсутствия ПХПшных модулей) ? =)
| |
|
2.18, тоже Аноним (ok), 14:39, 14/12/2015 [^] [^^] [^^^] [ответить]
| +/– |
Про битрикс ссылка выше, Джумла собирается выкатить версию 3.5 с заявленной поддержкой PHP 7 только к концу февраля.
Так что - кто успел обеспечить совместимость, того и померили.
| |
|
|