简体中文
English 简体中文 繁體中文
Methodox 首页

(2026)“The Third”:Mandelbrot 基准测试

创作者:Charles Zhang 开发时间:几个小时

截图

在 Divooka 中构建的 Mandelbrot 基准测试,展示了文档模块数据成员

概述

为此,我们计算一个校验和,而不是输出图像,以减少外部依赖,并使该基准测试易于移植到其他平台。

“The Mandelbrot Benchmark”诞生时,我们已经实现了文档级模块(以及数据成员属性),这为 Divooka 实现图灵完备铺平了道路。尽管它比 The Second 短得多,但这个程序的意义被认为更大。

开发

在组装这个程序时,我们使用了以下功能:

  1. 完整的(Basic Application)过程式上下文节点(loop、while)
  2. 文档模块数据成员

由于缺乏表达式机制,while 循环尤其难以实现,这也启发了后来基于 lambda 的 while 循环。

就像使用 Unreal Blueprints 时一样,对于这类数值算法,实际构建最多也仍然需要伪代码。不过一般而言,对任何算法来说,有(基于文本的)伪代码都是有帮助的;而使用文本语言时,则可以省去这一步来提高效率。

评论

这清楚地表明,要获得可观的原生性能,必须有编译型运行时。

几点重要的观察:

  1. 绝对属于高级用法
  2. 需要大量控制状态
  3. 如果我们在图上一个小模块一个小模块地构建,再把它们拼接起来,效果很好
  4. 在图中构建需要很长时间,而且不太便于迁移,尤其是在没有代码生成或复制粘贴的情况下

这个设置还引出了其他一些重要的推论,我们将在以后讨论。

脚注

在撰写本文时,这个设置仍在进行中,尚未完成。

资源

  • 原始源代码(Github)
  • 示例文件:此示例作为标准 Divooka Explore 发行版的一部分提供,位于 Benchmarks 文件夹中。

参考资料