Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Facebook превратил PHP в C++
 
 автор: cheops   (04.02.2010 в 11:45)   письмо автору
 
 

Разработчики Facebook обнародовали проект HipHop for PHP, который превращает код на языке PHP в код на языке C++. Последний компилируется в обычное приложение, которое выполняется гораздо быстрее, чем сценарий на PHP. В развитии проекта могут принять участие все желающие - Facebook раскрыл его исходные коды.

HipHop for PHP помог крупнейшей социальной сети в мире вдвое снизить нагрузку на процессор на ее веб-серверах и ускорить показ 400 миллиардов PHP-страниц в месяц. Тем самым значительно снизились требования к числу серверов, а следовательно, и расходы компании.

Разработка HipHop for PHP заняла два года. В настоящее время проект содержит 300 тысяч строк кода и прошел свыше пяти тысяч тестов. HipHop for PHP работает с некоторыми ограничениями, запрещая некоторые слишком сложные для перевода на C++ или медленные конструкции PHP.

PHP - один из самых популярных языков веб-разработки. Он используется более чем на 20 миллионах сайтов, в том числе на таких ресурсах, как Wikipedia, Yahoo! и Digg. Facebook - один из самых посещаемых сайтов, активно применяющих PHP. Его аудитория превышает 350 миллионов человек.

http://www.lenta.ru/news/2010/02/03/hiphop/

  Ответить  
 
 автор: ddhvvn   (04.02.2010 в 14:04)   письмо автору
 
   для: cheops   (04.02.2010 в 11:45)
 

Интересно )

  Ответить  
 
 автор: alexon   (04.02.2010 в 15:21)   письмо автору
 
   для: cheops   (04.02.2010 в 11:45)
 

Зачем было переводить в С++, написали бы сразу компилятор PHP и скорость была бы еще выше.

  Ответить  
 
 автор: ddhvvn   (04.02.2010 в 16:10)   письмо автору
 
   для: alexon   (04.02.2010 в 15:21)
 

1. зачем писать компилятор, когда их кучи? (правда могут быть аргументы)
2. Вы уверены, что компилированный PHP будет быстрее компилированного С++ ? ))

  Ответить  
 
 автор: alexon   (04.02.2010 в 21:22)   письмо автору
 
   для: ddhvvn   (04.02.2010 в 16:10)
 

Поясните пожалуйста, кучи компиляторов для PHP или просто компиляторов? А насчет 2-го пункта думаю да быстрее.
Если следовать предложенной выше идеологии то вообще любой язык нужно перекомпилировать в С++ только потому, что там уже есть компилятор.

  Ответить  
 
 автор: Eugene77   (04.02.2010 в 16:16)   письмо автору
 
   для: cheops   (04.02.2010 в 11:45)
 

Вот бы узнать список ограничений!
Чтобы сразу писать под него

  Ответить  
 
 автор: а-я   (04.02.2010 в 16:38)   письмо автору
 
   для: cheops   (04.02.2010 в 11:45)
 

дауно пора...) когда же мы.. простые смертные... коснемся сие чуда?)

  Ответить  
 
 автор: heed   (04.02.2010 в 22:50)   письмо автору
 
   для: а-я   (04.02.2010 в 16:38)
 

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

А если на php нужно будет делать просто приложения для разных ОС, то это будет уже не совсем php
, какой функцией тогда открыть/закрыть дисковод, или измерить размер рабочего стола.
Другое дело что интересно было-бы посмотреть на php-код переведённый на C
, или если просто ко всему этому будет модуль подобно запуску скриптов из коммандной строки, но вместо коммандной строки будет окно со множеством кнопок

, для производительности в web мне так кажется такому php нужна будет стать полнофункциональным http-сервером
, но надо будет по случаю сходить почитать как всё это дело развивается :)
В с++ заметно большеватые пограммы получаются, а скрипты не так много места занимают.

  Ответить  
 
 автор: Тень&   (04.02.2010 в 23:20)
 
   для: heed   (04.02.2010 в 22:50)
 

IMHO, тут половина ни разу на C++ не писала, а уже даёт свои оценки

  Ответить  
 
 автор: heed   (04.02.2010 в 23:49)   письмо автору
3 Кб
 
   для: Тень&   (04.02.2010 в 23:20)
 

я делал простенькие .cgi , запускал их из под apache, и по времени получалось больше чем php , которое стоит модулем apache.
А это hipHop буду сравнивать только с mod_perl ,) но пока что-то так и не нашёл где у них какие тесты можно скачать
, нашёл статью автора, о принципах заложенных в это. Заманчиво, но пока не увижу буду сомневаться :)

Хотя может я не правильно понял результат теста
H:\usr\local\apache\bin>ab -n 5 -c 5 http://comp/cgi.cgi

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking comp (be patient).....done

Server Software:        Apache/2.2.11
Server Hostname:        comp
Server Port:            80

Document Path:          /cgi.cgi
Document Length:        11 bytes

Concurrency Level:      5
Time taken for tests:   0.047 seconds
Complete requests:      5
Failed requests:        0
Write errors:           0
Total transferred:      1230 bytes
HTML transferred:       55 bytes
Requests per second:    106.67 [#/sec] (mean)
Time per request:       46.875 [ms] (mean)
Time per request:       9.375 [ms] (mean, across all concurrent requests)
Transfer rate:          25.63 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    31   41   8.6     47      47
Waiting:       16   31  11.0     31      47
Total:         31   41   8.6     47      47



H:\usr\local\apache\bin>ab -n 5 -c 5 http://comp/cgi-glob/printenv.pl

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking comp (be patient).....done

Server Software:        Apache/2.2.11
Server Hostname:        comp
Server Port:            80

Document Path:          /cgi-glob/printenv.pl
Document Length:        1246 bytes

Concurrency Level:      5
Time taken for tests:   0.016 seconds
Complete requests:      5
Failed requests:        0
Write errors:           0
Total transferred:      7485 bytes
HTML transferred:       6230 bytes
Requests per second:    320.00 [#/sec] (mean)
Time per request:       15.625 [ms] (mean)
Time per request:       3.125 [ms] (mean, across all concurrent requests)
Transfer rate:          467.81 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     0    6   8.6      8      16
Waiting:        0    6   8.6      8      16
Total:          0    6   8.6      8      16


printenv.pl стандартная распечатка переменных окружения

cgi.cgi компилировал такой

//<?
#include <windows.h>
#pragma comment(linker, "/ENTRY:EntryPoint")

HANDLE hSTDINhSTDOUThSTDERR;
DWORD dTmp;

int EntryPoint(void) {

 if (!
AllocConsole()) goto _QUIT1;
 
hSTDIN =  GetStdHandleSTD_INPUT_HANDLE );
  if (
hSTDIN == INVALID_HANDLE_VALUE) goto _QUIT1;
 
hSTDOUT GetStdHandleSTD_OUTPUT_HANDLE );
 if (
hSTDOUT == INVALID_HANDLE_VALUE) goto _QUIT1;
 
hSTDERR GetStdHandleSTD_ERROR_HANDLE );
  if ( 
hSTDERR == INVALID_HANDLE_VALUE) {
_QUIT1:
  
MessageBox(0,"Запуск неудался""ошибка"0);
  return 
0;
   }
    
WriteFile(hSTDOUT"Content-type:text/plain\n\nHelloWorld\n"36, &dTmp0);
return 
0;
}

написав в htaccess
Options +ExecCGI
AddHandler cgi-script .cgi
бинарник прикрепил

  Ответить  
 
 автор: Loki   (05.02.2010 в 13:00)   письмо автору
 
   для: cheops   (04.02.2010 в 11:45)
 

http://pro100pro.com/uskoryaem-php-s-hiphop
Как я понимаю, ограничений много. Вероятно, изначально писать на С++ окажется проще.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования