我正在尝试在我的GWT (Java)项目中加入基于服务器的代码比较和高亮显示。我设法整合了Pygments和difflib into my code using Jython。基本思想是在服务器上生成完整的标记,然后简单地将代码作为innerHTML注入页面。我发现Jython完全不够,因为即使对于相对较小的文件(2K-3K行),处理这些文件也需要Pygments或difflib永远(几分钟而不是几秒)。Difflib实际上会在拥有500M专用内存的进程中可靠地导致OOM错误,所以我想知道是my current setup错了,还是Jython根本不适合这个目的?
如果是这样,下一步是什么?我发现了Jepp,但是我必须为每个平台构建我的项目,而且它几乎没有文档,而且看起来不是很稳定。另一种可能是在同一主机上作为单独的get服务运行Pylons,并将标记直接获取到客户端或通过服务器引导它。另一种方法是使用Java System将python脚本作为进程执行,并捕获输出。
我非常有兴趣听到关于这个问题的可靠建议。
发布于 2010-12-02 19:06:38
有一个单独的服务听起来是最好的方式。对于Pygments,已经有一个服务available (在Google App Engine上)。该应用程序的源代码是BSD开源的,位于GitHub here上。当然,您也可以对其进行调整以添加difflib功能。
发布于 2010-12-03 13:58:30
我将接受上面的答案,因为它与我的发现一致,但只是让阅读这篇了解Pygments的单独webservice的人知道,使用Python原生解决方案(如Bottle )的Pygments的性能要比嵌入式Jython好很多倍。尤其是在Linux上
https://stackoverflow.com/questions/4329303
复制相似问题