我正在写一个python程序,在windows上工作,程序有很多线程和I / O,它在I / O中大量使用套接字从远程位置发送和接收数据,除此之外,它有使用正则表达式进行一些字符串操作。
我的问题是:性能明智,与例如Java或C#相比,python是这种程序的最佳编程语言吗?是否有其他语言更符合上述描述?
答案 0 :(得分:2)
有趣的问题。处理套接字的python模块直接包装底层操作系统功能。因此,在给定的操作中,根据包装语言,您不太可能看到任何速度差异。
如果您参与非常紧凑的循环,就像查看流中的每个字符一样,您会注意到python的速度问题。
您没有指出要发送的数据量。除非您正在进行必须保持大量I / O的解决方案,否则python可能会做得很好。在python中实现nginx或memcached或redis ......不是一个好主意。
一如既往......基准。如果它足够快,那么为什么要改变?
PS。程序员可能会在python中更快地完成它!
答案 1 :(得分:1)
您的要求是:
很难明确说明这项任务的最佳语言是几乎所有语言都符合您的要求。
最有趣的限制是需要进行大规模并发IO。这意味着您的瓶颈将是上下文切换,线程成本以及您是否可以在多个核心上运行线程池。根据您的扩展,您可能希望使用编译语言,并使用轻量级线程,可以轻松使用多个核心。这将列表缩减为C ++,Haskell,Erlang,Java,Scala。您可以通过使用分叉进程来解决Python中的全局解释器锁,它只是不会那么精细。