« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
    Популярное
Хранимые процедуры

Карандаш и кисть

Функция AccessResource

Цифровые сигнатуры (подписи)

Функция CreateCompatibleDC

Метод

JQuery: Пара сотен плагинов в одной заметке

Алгоритмы решения задач с массивами

PHP и Web. Кэширование.

Динамическое формирование объектов




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 128
Пользователей: 1
  • Alhimic

  • Статьи:: Интернет технологии :: Perl :: Что быстрее: Perl или PHP?



    отправить ссылку другу версия для печати  Обсудить на форуме

    Что быстрее: Perl или PHP?



    Отладка CGI

    Ответить на этот вопрос однозначно нельзя. Дело в том, что Perl существенно отличается от PHP. Первый - довольно продвинутый и мощный интерпретируемый язык, а второй создавался исключительно для работы в вебе. Поэтому, когда кто-то Вам скажет, что PHP круче Перла, пошлите его на три буквы. Эти языки сравнивают в неравных условиях.

    PHP легче - это факт. При запуске демона httpd (веб-сервер Апаче) он сразу же подгружает интерпретатор. Поэтому при запросах к скриптам нет бессмысленных и ресурсоемких загрузок процессора. Скрипт сразу же идет на выполнение, поэтому и говорят, что PHP очень шустрый. И хотя при использовании PHP тратится дополнительная память (каждый потомок хватает модуль php), при большом количестве обращений мы получаем выигрыш в производительности.

    Процесс выполнения Perl-скриптов в стандартном виде несколько иной. При обращении к такому скрипту, Апаче загружает интерпретатор, а тот выполняет код. При этом тратится довольно много памяти. Не менее 2 мегабайт на каждый процесс. Обычно от 4 до 6 мегабайт. Выходит, что каждый раз при обращении к скрипту сервер производит загрузку тяжелой программы - интерпретатора. Но это не значит, что Перл-скрипты выполняются медленнее. Это значит, что при работе с Perl сервер испытывает большую нагрузку.

    При больших нагрузках получаем следующее: сервер, использующий PHP легче справляется с запросами и может обработать больше клиентов. В то время сервер с сайтами на Perl будет подтормаживать.

    Ситуация легко разруливается следующим образом (mod_perl - убогий, я о нем говорить не буду): на сервер с Perl ставится прекрасный модуль fast_cgi (http://fastcgi.com). Он позволяет существенно снять нагрузку с сервера за счет того, что после первого запуска скрипт не выгружается из памяти, а ждет следующий запрос. При этом скрипт будет работать столько, сколько нужно, оставаясь в памяти. Никакой лишней нагрузки на ресурсы сервера. Та же идея, что лежит в основе PHP.

    Простые CGI-скрипты отличаются от FastCGI-скриптов всего несколькими строчками да и структурой. Например, скрипт может при первом запуске соединиться с MySQL и постоянно держать это соединение. Для того, чтобы скрипт работал именно под управлением FastCGI вызывается библиотека FCGI. Она легко ставится под Linux или Unix.
    #!/usr/bin/perl
    use FCGI;
    my $request = FCGI::Request();

    Действия, выполняемые при инициализации
    скрипта (например, коннект к БД)

    while($request->Accept() >= 0)
    {

    Основные действия, которые должен выполнять скрипт

    }

    Действия при завершении (редко нужно)



    При выполнении запросов скрипт как бы гоняется по циклу: ожидание - обработка - ожидание - обработка. В реале (под Linux или Unix) это спящий процесс, который находится в режиме Accept.

    Если запросов очень много, то сервер может запустить еще копию процесса. Это жрет некоторое количество памяти, но в целом увеличивает производительность сервера и ведет к экономии ресурсов.

    Вывод напрашивается сам собой. Кому нравится Php, пусть использует его и не обвиняют Perl. Связка Perl и FastCGI - лучший ответ на такие обвинения. При сложных задачах PHP уступает Perl на стадии выполнения кода, он выигрывает лишь в стадии загрузки. Но использование FastCGI сводит на нет это преимущество. Так что выбор между языками зависит от специфики задачи и уровня разработчика. Perl сложен для новичков, но позволяет решать огромный пласт задач помимо веб-направленных (например, работа в фоновом режиме и обеспечение работы сайта). PHP легок в освоении и удобен при создании разного рода веб-приложений.




    Рубрика: Perl




    Вышел MySQL 5.1.30, первый стабильный рели....

    MySQL

    После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:


    Подробнее... | Рубрика: MySQL | Добавлено: 28.11.2008

    Тестирование параллельных программ.

    Тестирование

    Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.


    Подробнее... | Рубрика: Тестирование | Добавлено: 28.11.2008

    Архитектура AMD64 (EM64T).

    Архитектура AMD

    Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.


    Подробнее... | Рубрика: Архитектура AMD | Добавлено: 27.11.2008

    Остальные статьи:

    Платформа 2009. Определяя будущее
    Windows Vista Bridge Sample Library - упра...
    Оптимизация 64-битных программ
    Подгрузка через AJAX HTML-кода, содержащег...
    Обзор нового релиза самой мощной Ajax библ...
    Firebug 1.3 и 1.4 alpha — что нового и инт...
    Релиз Microsoft Silverlight 2.0. Что новог...
    XML документация в C#
    Курсоры в MySQL 5
    Microsoft опубликовала подробности о сесси...
    Microsoft делится подробностями о том, что...
    Тестируем новый javascript от нового брауз...
    MySQL Query Cache
    Использование провайдеров компиляции в As...
    Чего мы ждем от C# 4.0
    Delphi 2009 и C++Builder 2009
    Джоэл Спольски и Джеф Этвуд запустили новы...
    Поиск кода Google /* что нового? */
    10 jQuery скриптов для улучшения интерфейс...
    Генераторы отчетов FastReport 4 и QuickRep...


    Цитата дня (все,добавить):

    Портал фрилансеров

    работа на дому


        Рубрикатор

    Программирование

    C/С++
    Обучение
    Windows API
    XAML
    Моделирование
    Паттерны
    Visual Basic 7 .NET
    WxWidgets
    Функции WinApi
    Функции С++
    Разработка под Mac OS
    Eiffel
    Visual Studio 2008
    UI дизайн
    Алгоритмы
    Конкурсные статьи
    Turbo Pascal
    Visual Studio
    CASE-средства
    Visual Studio 2005
    Без VCL
    Delphi
    Тех. документация
    Тестирование
    Software Testing
    ООП
    TCP/IP
    Google Android
    Windows Installer
    .NET Framework
    Драйвера
    C# C Sharp
    Справка
    Проектирование
    Информ. системы
    Visual Basic
    Assembler
    Оптимизация кода
    Gtk+
    Компоненты
    Реинжиниринг
    Управление проектами
    Extreeme programming
    Lotus Notes
    Алгебраическое проектирование


    Интернет технологии

    PHP
    Perl
    ASP
    WAP
    Cookies
    SSI
    CGI
    Web Servers
    VB Script
    DNS
    CSS
    XML
    Html
    Java Script
    Java2ME
    Firewall
    Flash
    .htaccess
    Apache
    VRML
    Протоколы
    Поисковые системы
    Технология JAVA
    Учебник по PHP
    Учебник по JavaScript
    Учебник по XML
    Java Q&A
    AJAX
    DHTML
    XHTML
    Dreamweaver
    Web 2.0
    Python
    Вебмастеру
    Cisco
    Ruby on Rails
    Silverlight

    Базы данных

    Access
    InterBase
    MySQL
    Oracle
    ADO .NET
    Основы SQL
    Учебник по Access 2002
    MS
    Microsoft FoxPro
    Доступ к данным
    XML в MS SQL Server 2000
    ODBC и MyODBC
    Обучение
    Caché
    DB2
    PostgresSQL
    Sybase
    Теория
    Хранилища данных
    Безопасность
    Реляционные данные
    MySQL и mSQL

    Остальное:

    Разное
    Обзоры книг
    Безопасность
    Графика и дизайн
    Юмор
    Linux
    Фракталы
    Microsoft Axapta
    Многоядерность
    Сети
    Microsoft Office
    Работа
    MS-DOS
    Криптография
    Графика и игроделание
    Новости SDK
    Системы защиты
    Учебник по AutoCad
    CVS
    Windows XP
    Windows Server 2003
    Windows Vista
    Windows 7
    Мероприятия