美文网首页
开发者都应该使用Linux

开发者都应该使用Linux

作者: 小鱼儿他老汉 | 来源:发表于2018-09-19 08:00 被阅读162次

    我之前总是使用虚拟机、Windows 10 Ubuntu子系统来兼顾两种平台。最近,有意识地对比了跨平台工具在Linux、Windows中的运行速度,发现:大多数情况下,Linux的工程编译速度几乎秒杀Windows

    主要工作平台

    • gcc/arm-none-eabi-gcc的工作环境中使用GNU Makefile,在Linux所需编译时间只有Windows的三分之一。
    • Arduino,在Linux中编译工程按照秒计算,而Windows都是按照分钟计算。
    • IDE,Windows/Linux都有ATOM。
    • Office,使用WPS和Libre Draw替代Office/Visio。
    • 工程管理,使用planner替代project。
    • 通讯,使用Web版本Wechat。
    • 虚拟机,VirtualBox。
    • 容器,Docker,Linux原生。
    • Cloud,Node.js/Python等在OS上的性能尚未比较。
    • Android Studio,在OS上的性能未比较。

    结论

    为何Linux下编译速度会明显快于Windows,我在知乎和Stackoverflow中都问了一下,自己也观察了一下。

    同样Arduino IDE,Arduino在Linux的中间文件路径是:

    /tmp/arduino_build_xxxxx/
    

    在Windows的中间文件路径是:

    /Documents and Settings/allankliu/Local.......
    

    也就是说Linux中,Arduino是把所有中间文件写到 /tmp 中去了,该路径是挂载在内存中的。确切地说,tmpfs是一种VM,由内存和虚拟内存(硬盘)组成,系统会自动切换调整。一般来说会占据物理内存的一半。

    而Windows中的Arduino都是需要写盘的,且路径较深。所以Arduino IDE在Windows中编译偏慢可以理解了。拿工具测试了一下,至少差12倍的速度。

    速度还在其次,我在想,如果一台采用SSD硬盘的电脑,长期执行编译任务,这种频繁写入、擦除,是否影响存储器寿命?而Linux下,由于tmpfs的存在,大大减少了反复写入的过程。

    如果使用Makefile/CMake等工具,或者Arduino这种IDE,在Windows下编译简单工程无所谓。但是随着模块的增加,那么编译速度决定了整个工程编译所需的时间和交期。

    所以,以Windows为操作台,以Linux为(分布式)编译平台,可以成为以后的工作台形式。

    更新

    在老旧的Dell D520 (T5500/3G DRAM)上运行的Kylin Ubuntu 18.04LTS。下载安装了NXP的MCUXpresso,这是一个基于Eclipse的IDE,一个惊喜之处是支持SDK压缩包的拖拽操作,比原来的检索下载要快许多。其次是MCUXpresso编译LPC5411X的工程也是按照秒来计算的。非常快!比Windows下快多了。

    相关文章

      网友评论

          本文标题:开发者都应该使用Linux

          本文链接:https://www.haomeiwen.com/subject/qwdbnftx.html