免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123456
最近访问板块 发新帖
楼主: linux_c_py_php
打印 上一主题 下一主题

[其他] 【讲讲我的编程生涯 - 章1】 [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
51 [报告]
发表于 2013-02-12 14:17 |只看该作者
回复 14# coderit


    没有谁一次能把代码写对。

先不说需求变更,就算需求明确,你也不能想个一两天,万事俱备然后开始敲码。这是不行的。最终你会发现实际开发和你想象中的距离很远。编码这种事情本来就是需要边写边改,边完善架构的。

看看Lua的开发史(20年开发历程,目前代码行数2W),是经过了多么坎坷的路程,这一点从1.0~5.2的各个发布的版本就能看到。Roberto本身的功底毋庸置疑。连这样大师级的人物真正“认真”思考开发一样东西都如此坎坷,更别说其他人了。

没有什么工业级的代码是可以通过深思熟虑一次搞定的。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
52 [报告]
发表于 2013-02-12 14:27 |只看该作者
说个最近发生的真事儿吧。

Lua邮件列表。有人提问,说Lua的字节码编译,OP_CLOSURE这个字节码的功能是创建一个新的闭包。字节码本身可以指定载入到哪个寄存器。但是,实际编码的时候发现,Lua的字节码并不是直接将闭包载入到局部变量所在的寄存器的,而是先将闭包载入到最高的那个寄存器,然后再用一个OP_MOVE字节码移动到局部变量所在寄存器中。他发了一个邮件问到底是什么原因。

Luiz(Lua的维护人)说,Lua的字节码并不是被完全优化的。

那个人很奇怪,那为什么这个地方不优化呢?

后来Roberto出现了。他说这个地方看起来没有完全优化,其实是最优化的选择。因为Lua是增量式垃圾回收的,这个垃圾回收机制对Lua字节码执行和C API执行分别作了优化。这种优化导致的结果就是在执行字节码的时候,回收器不一定能知道当前真正被使用的寄存器的集合究竟是哪几个。因此就指定了一个原则,每个字节码都必须要标示出自己当前使用的有效寄存器的边界。

而OP_CLOSURE字节码不直接将Closure载入到局部变量中的原因,也就是因为在产生Closure和载入Closure的间隙可能会有垃圾回收,甚至产生Closure这个事情本身也可能导致紧急垃圾回收行为,因此它必须要标记自己使用的最高寄存器,所以它将closure先载入到了最高的位置,然后再移动到目的地。

说这件事的原因是,很多东西,如果你不写代码,你根本不知道在实现的时候,可能会遇到什么样的细节。Lua仅仅是一个2W+的项目,就会有这样的细节,其他的项目会是怎样就不言而喻了。而且Lua的代码风格十分良好,结构上也十分优美,这样都不能完全杜绝这种问题,更别提其他的项目了。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
53 [报告]
发表于 2013-02-12 15:29 |只看该作者
coderit 发表于 2013-02-11 19:33
往往是这样,很多当官的水平一般,但也有很厉害的,只不过你没遇到过,见识少了,太嫩。
证明给我看, 你怎么个厉害法? 见识多的老。。。啥, 我不知该叫你老啥, 要不老厉害? 或者老官?

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
54 [报告]
发表于 2013-02-12 16:04 |只看该作者
真是这个道理, 实际去开发会遇到没有预想到的问题.

starwing83 发表于 2013-02-12 14:27
说个最近发生的真事儿吧。

Lua邮件列表。有人提问,说Lua的字节码编译,OP_CLOSURE这个字节码的功能是创 ...

论坛徽章:
0
55 [报告]
发表于 2013-02-20 15:56 |只看该作者
楼主快继续讲故事

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
56 [报告]
发表于 2013-02-20 17:14 |只看该作者
故事就这么多了, 我还年轻..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP