ic性能测试

ic性能测试
方块菌前言
打算暑假里在 ic 搞个简单算法竞赛忽悠鼓励一些人加入算法竞赛圈子,为了吸引人打算允许触发器参赛并放大时限,于是打算测试一下 ic 触发器/Lua 的性能
本地测试
测试CPU:AMD Ryzen 7 9700X
| 测试项目 | C++ | Lua in ic | Lua | Python | ic触发器 |
|---|---|---|---|---|---|
| for循环空跑1e8次 | 0.018s | 0.018s | 0.403s | 1.29s | 5s |
| 密集浮点计算1e7次 | 0.270s | 0.968s | 2.395s | 4.758s | 290s¹ |
| 线性筛全家桶到1e7 | 0.240s | 2.748s | 8s² | 6.902s | ——³ |
- N=1e6 时,运行约 29s,计算得出此数据
- N=1e7 时,命令行返回
lua: not enough memory,N改为1e6时用时0.8s,计算得出此数据 - 线性筛全家桶码量略大,暂未在 ic 触发器中复刻
另外,在洛谷ide测试了for循环空跑和密集浮点计算,以下为测试结果
| 测试项目 | C++14(GCC9) | Lua | Python3 | PyPy3 |
|---|---|---|---|---|
| for循环空跑1e8次 | 0.144s | 0.317s | 6.75s(计算得出) | 0.069s |
| 密集浮点计算1e7次 | 0.506s | 5.03s(计算得出) | 12.4s(计算得出) | 1.465s |
更复杂的任务我们以后再测试
可见触发器在面对更加困难的任务时效率衰减相当明显,这几乎断了我们允许触发器参赛的路子。
有趣的是本地运行的触发器for循环空跑薄纱洛谷跑的 Python,所以触发器已经超越了 Python!
触发器是世界上最好的编程语言!
我们发现 ic 中使用的 Lua 简直快到飞起,比官方的 Lua 快了数倍。起初我以为是因为 ToLua 使用了 LuaJIT,但是GPT否定了。那么为什么 Lua in ic 会快这么多呢,有知道的大佬可以发在评论区。
更新:确实是因为使用了 LuaJIT,GPT 是错的
后记
本测试后两项代码取自感性理解洛谷评测机速度(2025.06.01) by chen_zhe,并由 GPT-4o 修改为 Lua 和Python 版本,方块菌翻译密集浮点计算为触发器版本,可以在 ic 搜索密集浮点计算(触发器复刻)测试,但是要做好卡死的准备
参考资料
[1] 感性理解洛谷评测机速度(2025.06.01) by chen_zhe
[2] ChatGPT
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果


