binbinyouliiii
V2EX  ›  编程

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

  •  
  •   binbinyouliiii · Jan 7, 2018 · 4076 views
    This topic created in 3072 days ago, the information mentioned may be changed or developed.

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

    11 replies    2018-01-22 22:57:04 +08:00
    honeycomb
        1
    honeycomb  
       Jan 7, 2018 via Android
    先上业务逻辑,有必要优化的时候再优化。
    如果时间不紧迫的话,这么样都可以。

    就像 SynchronizedHashMap 和 ConcurrentHashMap 之间的关系,没有特殊情况的话会用后者。
    cuebyte
        2
    cuebyte  
       Jan 7, 2018
    不性能敏感就尽管用啊。
    binbinyouliiii
        3
    binbinyouliiii  
    OP
       Jan 7, 2018
    @honeycomb #1
    @cuebyte #2

    不知道算不算情节,代码多了就想精简,性能虽然够用但是就想更快,感觉不可兼得
    zmj1316
        4
    zmj1316  
       Jan 7, 2018
    C++ 的 Lambda overhead 小,用起来没什么负担
    h4lbhg1G
        5
    h4lbhg1G  
       Jan 7, 2018
    @zmj1316 我刚刚想问 C 艹的这个问题,发现一旦使用起来会上瘾。https://github.com/rexdf/CommandTrayHost/blob/master/CommandTrayHost/configure.cpp#L845
    binbinyouliiii
        6
    binbinyouliiii  
    OP
       Jan 7, 2018
    @zmj1316 #4 用了 C++,就没有写的爽不爽的事情了
    zmj1316
        7
    zmj1316  
       Jan 7, 2018
    @h4lbhg1G 编译器生成的 Lambda 和模板用起来就是没有什么性能负担,唯一的问题是编译起来实在太慢
    h4lbhg1G
        8
    h4lbhg1G  
       Jan 7, 2018
    @zmj1316 lambda 不是据说只是用一个 class 包装一下 function 的指针,capture 就是构造函数赋值。模板倒是会严重拖慢编译。
    dushixiang
        9
    dushixiang  
       Jan 7, 2018 via Android
    lambda
    HangoX
        10
    HangoX  
       Jan 7, 2018 via Android
    用 lambda 插件,会转换成正常的实现
    guoyuchuan
        11
    guoyuchuan  
       Jan 22, 2018
    不会用,但是在学
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 08:13 · PVG 16:13 · LAX 01:13 · JFK 04:13
    ♥ Do have faith in what you're doing.