如何从python中加速重复调用ruby程序(github的语言学家)?

时间:2015-02-17 05:40:30

标签: python ruby subprocess github-linguist

我正在使用github' linguist来识别未知的源代码文件。在gem install github-linguist非常慢之后从命令行运行此命令。我使用python的subprocess模块在​​Ubuntu 14库存安装上进行命令行调用。

针对空文件运行:linguist __init__.py大约需要2秒(其他文件的结果类似)。 我认为这完全来自Ruby的启动时间。正如@MartinKonecny指出的那样,它似乎是语言学家本身。

是否有某种方法可以加快此过程的速度 - 或者将呼叫捆绑在一起的方法?

1 个答案:

答案 0 :(得分:2)

一种可能性是仅调整linguist程序(https://github.com/github/linguist/blob/master/bin/linguist)以在命令行上采用多个路径。确实需要使用一些Ruby,但是每次都可以在没有Linguist启动开销的情况下传递多个文件。

这么简单的脚本就足够了:

require 'linguist/file_blob'
ARGV.each do |path|
  blob = Linguist::FileBlob.new(path, Dir.pwd)
  # print out blob.name, blob.language, blob.sloc, etc.
end