В Unix приветствуется создание небольших взаимодействующих программ, каждая из которых решает одну задачу. В частности, именно за счёт процессов ОС решаются проблемы параллелизации и многозадачности. Поэтому важно, чтобы программа стартовала быстро и не выполняла того, о чём её не просит программист.
Недавно я заинтересовался языком Clojure, который исповедует монолитный подход к параллельности. Я решил провести небольшое сравнение скорости выполнения крошечных программ “Hello World” на разных языках. Вот результаты сравнения:
При запуске любой программы Python у меня на машине интерпретатор делает более 8000 системных вызовов для разрешения библиотек, прежде чем начинает выполнение простого скрипта. На это уходит примерно 2 секунды.
Мне кажется, что это ужасное поведение интерпретатора и что нужно что-то с этим поделать. Возможно, требуется кэширование или отказ от анализа всех путей при старте. Интересно, кто-нибудь уже писал о такой проблеме?
Here you can find markdown vim syntax file made by Ben Williams. Put it to the ~/vim/syntax/ folder.
To add syntax...
“This image was taken on September 15, 2006 and received on Earth September 20, 2006. The camera was pointing toward Saturn at approximately 2M...
Well, it looks like GCC 4.3.2 does not comply to C99 specification. It clearly states that:
6.8.6.4.1 ... A...