擅长:python、mysql、java
<p>除了编译Python文件,Mercurial还将导入修改为随需应变,这确实减少了启动时间。它在demandimport模块中将<code>__builtin__.__import__</code>设置为自己的导入函数。在</p>
<p>如果您查看/usr/lib/(或机器上的任何地方)中的hg脚本,您可以在以下几行中看到这一点:</p>
<pre><code>try:
from mercurial import demandimport; demandimport.enable()
except ImportError:
import sys
sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
' '.join(sys.path))
sys.stderr.write("(check your install and PYTHONPATH)\n")
sys.exit(-1)
</code></pre>
<p>如果将demandimport行更改为<code>pass</code>,您将发现启动时间大大增加。在我的机器上,它大概是原来的两倍。在</p>
<p>我建议学习需求端口.py看看如何在自己的项目中应用类似的技术。在</p>
<p>p.S.Git,我相信你知道的,是用C语言编写的,所以我并不惊讶它的启动时间很快。在</p>