现在位置: 首页

一位Erlang程序员的自白

2020-01-18 12:30 工业·编程  ⁄ 共 5249字 暂无评论
作为程序员,我们曾经闻听很多“业界动态”,“技术革新”,曾经接触很多“高手箴言”,“权威推荐”。这些正确与否,都已成过去! 现在,让我们迎接Erlang盛宴! 一、经历 2007年11月在koders.com搜索代码时,发现*.erl格式的源文件,感叹开发语言的花样百出,此时,我觉得erlang是一个丑陋的小家伙,看名字就没有对它提起多少兴趣。 2008年初的时候,公司的项目开发中,我有缘认识了ejabberd,一个采用Erlang开发的开源jabber服务器...
阅读全文

如何阅读Go的源码

2020-01-17 16:46 工业·编程  ⁄ 共 728字 暂无评论
Go 源码中,应该可分为与语言息息相关的部分,和官方提供的标准库。与语言实现相关的肯定是最难的,不是那么容易理解。可以先主要看标准库,其他的可以先大概了解下,待准备充足,再开始艰难的任务。 第一步,先把源码目录整体扫一遍,大概看看涉及了哪些模块,再挑自己喜欢的部分进行更深一步的学习与研究。建议每个库都看下官方文档,简单写个 hello world,才会体悟更深。如果连 hello world 都写不出来,这个模块的源码暂时...
阅读全文

Python的运行机制

2020-01-16 16:21 工业·编程  ⁄ 共 606字 暂无评论
Python作为动态解释性语言,其运行机制可参考下图(图片来自网络,其中的“编译器”是对解释器的广义称呼): 都说解释器慢,Python也有想办法提高一下运行速度的,那就是使用pyc文件。这点参考了JAVA的字节码做法,但并不完全类同。 我们编写的代码一般都会保存在以.py为后缀的文件中。在执行程序时,解释器逐行读取源代码并逐行解释运行。每执行一次,就重复一次这个过程,这其中耗费了大量的重复性的解释工作。为了减少这一重...
阅读全文

Python解释器种类

2020-01-15 16:27 工业·编程  ⁄ 共 498字 暂无评论
Python有好几种版本的解释器: CPython:官方版本的解释器。这个解释器是用C语言开发的,所以叫CPython。CPython是使用最广的Python解释器。我们通常说的、下载的、讨论的、使用的都是这个解释器。 Ipython:基于CPython之上的一个交互式解释器,在交互方式上有所增强,执行Python代码的功能和CPython是完全一样的。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。 PyPy:一个追求执行速度的Python解释器...
阅读全文

比较Erlang和Golang

2020-01-14 13:29 工业·编程  ⁄ 共 1129字 暂无评论
一年前我开始学习go语言的时候,如获至宝,既有python的编码效率,又带来性能的15倍提升。尤其是在异步编程方面,可以使用channel同步线程,不必加锁可以充分利用cpu多核计算,真是没有弱点。 后来慢慢了解到,这种无锁异步编程的思想,源自一门叫做erlang的语言,Erlang更加了不起。除了异步编程之外,这门语言天生支持分布式,单机上开发的软件,可以不加修改地运行在集群上,另外还支持软件版本的热升级,自带的OTP框架支持...
阅读全文

为什么选择Erlang作为服务器编程语言

2020-01-13 13:23 工业·编程  ⁄ 共 1848字 暂无评论
虽然Erlang有很长的历史,并且也被应用到很多领域中,在编程语言众多,新编程语言还在继续涌现的今天,Erlang却并不为普通大众所知,仅仅在一个小众圈子里面备受推崇。Erlang既是一个编程语言,更是一个操作系统加一整套工具集。对于服务器端的各种编程任务,Erlang使不可能做到的事情成为了可能,让可能做到的事情变得更简单。 首先举个生活中的例子吧,当我们打电话的时候当我们发短信的时候,我们很有可能正在使用基于Erlang...
阅读全文

用Erlang开发的九大开源项目汇总及介绍

2020-01-12 13:20 工业·编程  ⁄ 共 3024字 暂无评论
一、CouchDB项目 http://incubator.apache.org/couchdb/ CouchDB是一个"面向文档"的数据库,采用 ErLang 语言开发,文档的格式是一个JSON字符串(也可包含二进制附件)。 底层结构是由一个"存储"(storeage) ,以及多个"视图索引"(view indexs)。 "储存"用来储存文件, "视图索引"用于查询处理。 CouchDB落实到最底层的数据结构就是两类B+Tree 。 CouchDB 能够适应非常广泛的...
阅读全文

Erlang语言介绍

2020-01-11 13:14 工业·编程  ⁄ 共 1563字 暂无评论
1、Erlang介绍 Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。Erlang问世于1987年,经过十年的发展,于1998年发布开源版本。Erlang是运行于虚拟机的解释性语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多...
阅读全文

leveldb学习:内存池Arena

2020-01-10 06:46 工业·编程  ⁄ 共 2116字 暂无评论
和SGI版的STL一样,leveldb内存分配也采用了memory pool的整理方式,减少内存不断分配释放过程中造成的空间零碎化和浪费。leveldb的内存池实现可参见arena.h和arena.cc,有关内存池的测试代码有arena_test.cc。arena内存池是leveldb的关键组件,是很多其他功能模块(class)的成员,在cache、memtable、table组件中均有使用。 先看arena的成员变量: private:   // Allocation state   //当前内存池的池顶   cha...
阅读全文

白云先生:伊朗暴揍美国,特朗普吓傻了

2020-01-09 15:51 战略·谋略  ⁄ 共 5923字 评论 8 条
1月8日,美军驻伊拉克“阿萨德空军基地”遭到数十枚导弹袭击。伊斯兰革命卫队确认用数十枚弹道导弹攻击美军基地,同时伊朗媒体公布了对美国基地实施导弹攻击的现场视频画面。第一轮袭击过后不久,伊朗又进行了第二轮的袭击。并宣称,如果美国胆敢报复,就进行第三轮的袭击。 两轮报复行动,共发射了几十枚导弹。伊朗方面宣称,打死了80多个美国人,打伤了200多个美国人,炸毁了很多美国直升机、无人机和战斗机。 我们来分析一下...
阅读全文