用于比特币开发的Python与IronPython

时间:2012-12-20 01:02:45

标签: python visual-studio-2012 ironpython bitcoin

一直在考虑将BitCoin Mining Pool服务器移植到IronPython

除了支持Python~v2.7的Ironpython的限制

Ironpython / Windows平台是否真的不适合这种类型的高容量/大型交易系统

我可能遇到的其他一些限制是什么,或者我应该咬紧牙关并建立一个ubuntu编程RIG

如果后者对来自c#Visual Studio世界的人来说是一个简单的IDE

感谢Adavnce

1 个答案:

答案 0 :(得分:1)

如果不知道你的现有代码是如何构建的,或者你打算如何使用新版本,那么很难具体回答,但我可以给出一些通用性。

IronPython限制/问题,按重要性降序排列:  *没有第三方C扩展模块。如果你依赖任何东西,你将不得不找到一个.NET等价物或自己重新实现相同的东西。如果没有,不是问题。  *没有3.x.如果你知道3.x,Unicode就容易多了,yield from岩石等等,而且3.x不断提高(甚至加速),而2.x则停滞不前。但这值多少是个人偏好的问题,而不是其他任何人可以给你一个客观的答案。  *没有第三方纯Python模块依赖(重要的)重新计算语义。那里没有太多这些,但如果你需要一个,你需要它。  * IronPython和CPython之间存在一些差异,在发行说明中列出。可能这些都不会影响你,但你应该检查。  *如果有任何繁重的应用程序逻辑(而不是所有的工作都是网络/文件/数据库),IronPython在某些方面要比CPython快得多,而在其他几个方面要慢得多,所以你可能需要分析和执行在走向任何一条路径之前进行测试。 (并且考虑至少PyPy,如果不是Jython,当你在它的时候......)但通常这不是服务器的问题。

接下来,Windows平台是否适合大容量系统? Windows绝对能够每秒处理数千个连接(或请求,或字节,或与您的用例最相关的任何内容)。它可能永远不会在纯连接/秒/ $中击败linux,但你必须切实地将运营成本与开发成本进行权衡。然而,稍微过分简化,Windows在反应器和岩石处于冲击状态时很糟糕,而linux在反应堆中晃动并且在反应器中很不错(并且存在其他类似的问题 - 例如,替代上述的进程/线程)。因此,即使Windows 可以做得几乎与Linux一样好,但它在同一代码上也不能做得好,或者甚至通常是相同的设计。您需要构建代码以利用Windows功能并考虑Windows的弱点。如果你正在使用一个框架为你做繁重的工作,那么选择就会减少,而最好的选择可能不会像你习惯的那样工作,这通常比改变平台的开发成本高得多

如果你在linux上使用CPython,你应该使用什么IDE?坚持使用Visual Studio。您可以并且可能应该以跨平台的方式编写全部或大部分代码,这些方式在IronPython和Linux CPython上运行。然后,您可以在Visual Studio中使用Iron Python进行编码,测试和调试,使用本机Windows CPython和/或Cygwin CPython进行偶尔的健全性检查,并且只需触摸linux进行性能测试,发布前的最终验收测试以及调试问题。 t repro在Windows上。您仍然偶尔需要在Linux上使用简单的文本编辑器,但IDLE,或者您喜欢的任何vi-vs-emacs,或者您的Linux发行版附带的GUI文本编辑器都是默认的。

如果您的应用逻辑与您的反应堆设计紧密结合,那么这可能很困难。如果它是可行的,它可能值得做,但如果它不是......好吧,你可以仍然使用Visual Studio作为编辑器和项目组织者,即使实际代码是打算在linux盒子上运行。你没有那种漂亮的调试器集成等,但你仍然会获得很多里程。