我最初写了一个功能性的蛮力搜索(ADT表示城市,城市元组作为距离数组的索引,懒洋洋地用Data.List.permutations生成排列,用严格的左折叠来消耗它们),但速度慢得令人痛苦。我以一种更命令式的方式连续重写它,并使用Heap的排列算法,从而使它的速度提高了3倍,但是将结果直接转换为(写得不好的)C的速度要快10倍!怎么一回事?free(bestRoute);
/* p
一般来说,当开发人员试图解释为什么(高度调优的) C++比Java2倍快时,他们提到的一个因素是C++ AOT编译比JIT有更多的时间进行广泛的优化。因此,我假设Graal中的AOT编译也会有类似的机会,因此即使它没有C++快,它至少也会比JIT编译快--然而,情况似乎并非如此。为什么会这样呢?特别是,有没有特定的场景下Graal的AOT编译器会更快?相反,有没有比GRAAL AO