到底该不该使用Python?( 二 )


*Python的捍卫者会说,这不是语言的缺陷,而是代码审查和测试方法的缺陷 。
*他们错了!理论上,测试方法主要是查看每一行代码并检查每个输入和场景,但实际上这并不可能!
好的编程语言的特点之一是:你不必检查和测试内存中每个相关位置的排列;如果必须详尽地检查和测试每个“a=b+c”,程序将可能永远无法应用于实践 。
我会经常查看Python函数,并想了解是否有人实际调用了它们以及携带了哪些参数 。
我也经常不得不“求助”代码库的全文搜索功能寻找调用位置;不幸的是,即便没有输出任何结果,当我删除相应函数时,程序依然会崩溃;就算程序没有立即崩溃,也无法判断程序是否会在某种情况下崩溃 。
5、分叉进程,耗尽内存用Python的另一个问题是内存 。我的笔记本电脑有10个CPU内核,其中,Python应用程序大约占用1.2个 。
这该怎么办呢?幸运的是,我可以在Python中使用分叉工作进程的功能处理请求,确保所有核心都能正常使用 。
不幸的是,分叉进程的操作很快就耗尽了内存,所以我决定在处理完一定数量的请求后自行终止分叉,然后由linux进行内存管理 。虽然这并不是Python本身的问题,但Python使内存管理变得更加糟糕 。
分叉工作进程还有另一个影响:Python使用引用计数法击败了写时复制 。为控制引用计数,保存只读变量的内存块也被写入,从而耗费了一定的内存 。
解决这个问题的有效方法是:让编译器对所有由主进程创建和由worker进程继承的变量使用参考数值,而不必触及到具有该参考数值的引用计数 。
这是超级聪明的解决方案,但我认为应该没这个必要 。如果你需要破解编译器才能让Python为你所用,那这种语言又有什么用呢?
总之,Python使编写可靠、易于维护和快速的代码变得非常困难 。
6、将Python替换成GO当我对Python忍无可忍之时就会转向Go,它使用起来几乎与Python同样容易、安全,还能快速构建系统并生成高度优化的二进制本机代码文件 。
虽然Go也并不是完美的,但是,如果你想可靠和快速地编写代码,并在代码失控时可以调试和重构,Go比Python好很多!
参考资料:
https://www.zhihu.com/question/321166662/answer/2937406779?utm_id=0
https://www.zhihu.com/question/321166662/answer/2937406779




推荐阅读