Python/NodeJS坑记

发布时间:2019-09-15 10:10:38编辑:auto阅读(1763)

    Python/NodeJS坑记

    自从学了Python和NodeJS,每每在写新的程序之前我就会问自己:到底用Python好,还是用NodeJS好?两者都能进行快速开发,并且各有千秋。
    
    现在就记录一下Python和NodeJS开发程序时的各种坑,方便以后纠结的时候查询。
    
    因为增加辅助代码会增加工作量,所以以下情况都是在不考虑其他辅助代码,例如线程池,任务管理,的情 况下的考虑。
    

    坑1:Python对高并发的支持

    Python对付并发的手断一般是多线程。多线程用来对付耗时较长的的并发任务是比较有效的。只需要写下平常的同步代码然后创建线程去运行就好了。
    但是多线程处理有非常严重的问题,那就是对细粒度的并发任务不友好。虽然有其他办法可以解决效率问题,但是会增加代码量,降低易读性和可维护性。

    坑2:NodeJS对内存的管理

    既然Python对高并发支持不好,那么遇到高并发的程序,我们就用NodeJS吧。
    想想是美好的,显示是残酷的。NodeJS处理高并发并没有想像中的那么好。
    

    NodeJS有极速V8引擎,对异步调用相性超高,乍一看是非常好的处理高并发的语言。
    但是NodeJS有内存限制!它没法使用超过2G的内存,这是由V8引擎内部决定的,暂时没法解决这个问题。

    要就保证处理量不超过2G,要不就使用其他办法(目前想到Cluster似乎可以解决,但是尚未尝试过)

    坑3:TypeScript for NodeJS

    本来NodeJS是可以进行快速开发小型程序的。但是TypeScript出现了,这个东西令我非常喜爱,可创建它的项目非常麻烦,需要一大堆依赖项,一大堆命令。

    最近发现了MSYS2,可以考虑写一个bash脚本简化创建项目的工作。

    坑4:NodeJS第三方库太少

    NodeJS虽然有npm,但是作为一款本地语言,本地操作的库还是太少了,很多常用操作都不支持,例如python对smb协议的支持就很好,而node就差多了。

关键字

上一篇: python绘图入门

下一篇: Python 解析XML