返回首页

一周热榜

3作者: bsommerfeld4 天前原帖
一切始于无人机。我和我的联合创始人在开发一个Minecraft插件,要求无人机在未加载的区块中导航——这些地形在内存中甚至不存在。现有的库对此没有任何概念,导致无人机陷入了虚无。 起初我们的代码很粗糙,紧密依赖于Minecraft的API,因此我们决定自己构建一个。但在这个过程中,我们意识到:问题并不在于Minecraft,而在于Java路径寻找的构建方式——对象重、对垃圾回收不友好,并且默认是单线程的。 于是我将项目拆分。核心部分变成了一个独立的项目:为了兼容性,使用纯Java 8+,采用零分配的原始堆,而不是理论上最优的Fibonacci堆,因为指针追踪和缓存未命中是不可接受的。100%异步,即使在一个单线程、讨厌异步的Minecraft环境中,也能实现,并且提供完整扩展性的处理器流水线。没有游戏引擎,但可以适应你的环境。 有时候需要优化的不是算法,而是它所处的环境。Pathetic充满了这些微优化:在昂贵的闭合集合检查之前进行BloomFilter查找,使用多指标平方启发式来消除Math.sqrt()的开销,以及将3D坐标打包成一个原始长整型。为了让Java运行得更快,你需要像对待C++一样对待它。 结果是:在大约7毫秒内处理1万个并发路径,而大多数库在此时悄然崩溃。处理一个20千米的路径(相当于100千个节点)大约需要60毫秒,而没有导致堆的膨胀。 README是……一个选择。你可以评判它,因为它也在评判你。
3作者: CringeOut3 天前原帖
建立了一个社交网络,用于调侃企业的尴尬行为。发布自我炫耀的内容,并以直接的情感进行回应。