szk820628 发表于 2020-12-23 17:37:50

与以语言的简易速度对比

本帖最后由 szk820628 于 2020-12-23 18:17 编辑

本人测试了易语言 和 火山PC 的速度对比,对比方式如下:

分别进行了最简单的》》》*万次数组加入成员!!!

分别是 100W次数组成员加入,200W次数组成员加入,300W次数组成员加入,400W次数组成员加入,500W次数组成员加入

前期速度基本一致,在400W,500W的数组计算中,火山PC比易语言多用了2秒!!!

可惜啊,测试版本的火山PC惜败。。。。希望这是测试版的原因啊。

fengshangren 发表于 2020-12-23 18:23:07

吴总封的核心库,整体效率都不是很高,不知道为什么,字节集操作类的效率比易语言还低。但是嵌入的C代码效率就很高。吴总还是可以稍微注重一下效率

0晨鹤0 发表于 2020-12-23 19:04:37

我在一开始就提过潜在的效率风险,可惜被忽略了。
这也是没办法,火山的定位就是简单为主而不是效率为主。

火山是把其他语言套一层壳子变成火山类库。但是封装不是简单的翻译,吴总要求封装后的函数必须通俗易懂,让用户只看注释就能学会使用。一个很浅显的道理:越底层的代码效率越高,因为可以针对性优化;相反封装越简单的代码效率越低,因为要考虑普遍情况。

举个简单的例子,假设多选列表有一个函数叫 “取选中行()”。这个函数只需一句话就可以实现需求,非常通俗易懂。但关键在于你不知道他怎么实现的。是每次都遍历一遍?还是有个选中数组来缓存?如果是前者,而你不知道这个知识,那么错误的使用(例如在循环中取选中行)就会非常非常低效。相反,如果是后者实现的,但你不知道,为了提高效率自己又缓存一遍,这就浪费了内存。

因此,封装虽然对新手隐藏了内部实现,但同时也降低了针对性优化的可能性。上面是一个很简单的例子,实际情况复杂的多。例如,我见过很多在 Android 上需要几十上百行代码的功能被封装成一句话。看起来似乎很实用,但实际上很可怕,因为你根本不知道他内部究竟干了什么,所以不知不觉间,程序的整体效率就被拉开了。

事实上,很多看似一句话的代码,里面包含了对象的创建与释放,甚至生命周期管理。这种代码倘若大量在循环中使用,后果是灾难性的。虽然现在设备性能足够折腾,但要是所有应用都像火山这么玩的话,也拖垮了。

所以,真的在意性能,就不应该考虑火山。

伟业 发表于 2021-7-11 14:56:53

路过.....

kyozy 发表于 2021-7-11 15:51:25

楼主的代码, 在火山里面, 计次循环() 里面的次数不要每次都计算, 用一个变量保存下来, 否则每次循环都会去执行一次, 当然就慢了

ZCXXX 发表于 2021-7-11 16:26:34

把火山代码 换成
循环(,内容*10000,i)
数组.加入成员(i)

我觉得循环 比计次循环高效

xiaoai 发表于 2023-4-27 01:57:33

0晨鹤0 发表于 2020-12-23 19:04
我在一开始就提过潜在的效率风险,可惜被忽略了。
这也是没办法,火山的定位就是简单为主而不是效率为主。
...

这么一看,官方描述中的 "具有无与伦比的运行速度" 就更开玩笑一样

793359277 发表于 2023-4-27 02:44:59

xiaoai 发表于 2023-4-27 01:57
这么一看,官方描述中的 "具有无与伦比的运行速度" 就更开玩笑一样

你这个坟,挖的有意思吗,2020年底的帖子,隔了两年半这还回什么啊?

朕的 发表于 2023-4-27 03:59:10

好像火山计次循环好像会每次循环都会读取一下循环次数的参数,而易语言就不会

hcwanz 发表于 2023-4-27 08:57:28

xiaoai 发表于 2023-4-27 01:57
这么一看,官方描述中的 "具有无与伦比的运行速度" 就更开玩笑一样

眼光别这么窄,火山效率低是相对c来说的(实际也不算慢,毕竟大点的项目都会封几层),c本身就是最快的了
页: [1] 2
查看完整版本: 与以语言的简易速度对比