стоит ли компилировать программу на языке Си и запускать ее вместо страницы PHP?



Похоже, что большую часть времени набранная скорость не стоит того - так ли это? в противном случае многие люди будут делать это для своей самой популярной страницы. Есть ли реальная польза от использования программы на языке Си? Я могу представить себе случай, когда это не важно: когда узкое место Сети на сервере значительно больше, чем узкое место процессора, то скорость выполнения программы становится менее важной.

597   7  

7 ответов:

C-отличный язык. Но он был разработан для программирования системного уровня, а не для создания веб-страниц. PHP, с другой стороны, был разработан для создания веб-страниц. Используйте правильный инструмент для правильной работы. В данном случае PHP.

Кроме того, вы начинаете с ошибочной посылки. А именно, что PHP не будет достаточно быстрым, чтобы доставить содержимое страницы. Существует множество сайтов, которые просто не согласны с этим утверждением. Может быть, есть какой-то угловой случай, что C-единственный выбор для работы, но я нахожу крайне маловероятным, что вы столкнетесь с этим сценарием.

Когда вы используете C в качестве молотка, все выглядит как большой палец.

Как сказал Джаред выше, используйте правильные инструменты. Вы могли бы сделать все это в C, многие сделали. Но скорость разработки PHP vs C для интернета-это то,что вы также можете посмотреть. То, что довольно просто сделать в PHP (например, динамический массив) - это то, что не просто в C.

Большинство веб-сайтов используют кэширование в памяти для быстрого реагирования. В этом случае нагрузка больше не в создании страницы, поэтому я бы не пошел на программу c.

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

Стоимость обновления вашего сервера или реализации эффективного кэширования всегда будет меньше, чем работа, которая потребовалась бы для написания перезаписи кода на стороне сервера для запуска в C.

Это действительно зависит от кода. Например, я бы предпочел скомпилировать код C, который имеет дело с моим алгоритмом сетевого графа; однако я никогда не преобразовывал бы простую статическую страницу, которая отображает минимальный CSS.

Если вам даже нужно задать вопрос, ответ-нет.

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

Если ваш код должен работать очень быстро, делая что-то довольно вычислительно сложное или запутанное, возможно, C может будьте правильным ответом, но большинство веб-сайтов не похожи на это.

Может быть, стоит иметь очень специфическую обработку или тяжелый код, переписанный в виде модулей C, как только будет определено, что текущая реализация слишком медленная, но эти оптимизации лучше всего делать в будущем, с уверенным знанием реальных узких мест в приложении.

Если у вас есть приличная библиотека или платформа, например .NET MVC, использование C# для general web dev-это осуществимая идея. C, не так много.

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

Таким образом, случай, когда

  • программа должна сделать много обработки данных или вычислений
  • существуют сильно оптимизированные C-коды

Я бы сказал, что сложная система отслеживания лучей является кандидатом на эту ситуацию, но ничего под этой сложностью.

Даже в этом случае я бы осуществил страницы в PHP и запустить фоновое задание, чтобы сделать тяжелую работу.

Comments

    Ничего не найдено.