”Lambda“和“手动实现” 如何取舍

2018-01-07 19:15:54 +08:00
 binbinyouliiii

Lambda 实际用起来确实挺爽,但是性能在 Java 和 Koltin 上就不如自己手动实现,我的大部分情境下,手动实现的总是比 Lambda 性能高不少,虽然小数据量下差距比较小,但是量级一高,性能就明显不如自己实现的了,平常大家都是怎么取舍的。

3540 次点击
所在节点    编程
11 条回复
honeycomb
2018-01-07 19:27:09 +08:00
先上业务逻辑,有必要优化的时候再优化。
如果时间不紧迫的话,这么样都可以。

就像 SynchronizedHashMap 和 ConcurrentHashMap 之间的关系,没有特殊情况的话会用后者。
cuebyte
2018-01-07 19:27:23 +08:00
不性能敏感就尽管用啊。
binbinyouliiii
2018-01-07 19:30:09 +08:00
@honeycomb #1
@cuebyte #2

不知道算不算情节,代码多了就想精简,性能虽然够用但是就想更快,感觉不可兼得
zmj1316
2018-01-07 20:01:33 +08:00
C++ 的 Lambda overhead 小,用起来没什么负担
h4lbhg1G
2018-01-07 20:07:30 +08:00
@zmj1316 我刚刚想问 C 艹的这个问题,发现一旦使用起来会上瘾。https://github.com/rexdf/CommandTrayHost/blob/master/CommandTrayHost/configure.cpp#L845
binbinyouliiii
2018-01-07 20:09:54 +08:00
@zmj1316 #4 用了 C++,就没有写的爽不爽的事情了
zmj1316
2018-01-07 20:33:04 +08:00
@h4lbhg1G 编译器生成的 Lambda 和模板用起来就是没有什么性能负担,唯一的问题是编译起来实在太慢
h4lbhg1G
2018-01-07 20:35:39 +08:00
@zmj1316 lambda 不是据说只是用一个 class 包装一下 function 的指针,capture 就是构造函数赋值。模板倒是会严重拖慢编译。
FreeEx
2018-01-07 21:12:28 +08:00
lambda
HangoX
2018-01-07 23:24:47 +08:00
用 lambda 插件,会转换成正常的实现
guoyuchuan
2018-01-22 22:57:04 +08:00
不会用,但是在学

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX