[资料] Concurrency in the D Programming Language
betty_betty2008
2010-08-25
lifc 写道
betty_betty2008 写道
这个问题是有点大,但也是困惑已久的问题,为什么我选择D?仅仅是因为语法优雅吗?不太甘心,还得指望它有竞争力。 这也是我一直在问自己的问题。 接触d差不多10年,其间用它做过几个项目,给我的印象是带来的麻烦超过获得的便利。 后来想想,继续用c++算了。虽然写代码慢点,编译慢点,可执行文件大点……但起码基础稳固容易维护,开发和调试都没有障碍,而且随着c++0x标准出台以及新语言的不断涌现,d的优势已经远没有10年前那么明显。 不过还是认为,d绝对值得关注,特别是A大的高调介入更给人留下丰富的想像空间。
顺便请教一下,Qt的Signal/Slot比起事件/消息机制究竟有多慢,什么情况下会影响至大?
|
|
hqs7636
2010-08-25
lifc 写道
betty_betty2008 写道
这个问题是有点大,但也是困惑已久的问题,为什么我选择D?仅仅是因为语法优雅吗?不太甘心,还得指望它有竞争力。 这也是我一直在问自己的问题。 接触d差不多10年,其间用它做过几个项目,给我的印象是带来的麻烦超过获得的便利。 后来想想,继续用c++算了。虽然写代码慢点,编译慢点,可执行文件大点……但起码基础稳固容易维护,开发和调试都没有障碍,而且随着c++0x标准出台以及新语言的不断涌现,d的优势已经远没有10年前那么明显。 不过还是认为,d绝对值得关注,特别是A大的高调介入更给人留下丰富的想像空间。
现在d的bug情况应该比一年前好太多了,库少点就是,对要求不高的当delphi3玩是可以吧,做点小应用,麻烦就当是练手了
当初老 A 是怎么高调介入的啊?俺从第一天认识 d 到今天还不到3年,最近才开始真正认真看书,玩,只记得W说过一句:你将得到一个同时兼具强大且简单的语言 |
|
lifc
2010-08-26
betty_betty2008 写道
顺便请教一下,Qt的Signal/Slot比起事件/消息机制究竟有多慢,什么情况下会影响至大?
很少做界面开发,加上不习惯qt早期的商用license和预编译,一直对它没深入研究。 用过glib/gtk、libsigc++、sigslot和boost的signal/slot,通常与外部事件(例如win32、x11消息)联用,由外部事件触发一系列预定义动作,类似c#的event、delegate。 signal/slot属于事件、消息机制的一个实现,除了和外部事件联动更经常作为模块间通讯的一种手段,用来实现面向对象的消息传递。 主要开销在消息传递过程中创建的一系列消息对象,通常要在堆上进行分配,因此还要对消息的生命期进行追踪管理(例如引用计数)。此外消息派发查表和函数指针引用(可能涉及vtable)也会产生额外开销。 signal/slot只算是一种异步回调手段,实现并发还必须在上层做一系列的同步、锁定和数据管理。单就其本身来说如果设计不当消息粒度过细或者过于消息生成过于频繁(比如关联mouse move消息)都会对性能产生一定影响。 |