意外的Java性能
发布时间:2020-12-14 19:21:19 所属栏目:Java 来源:网络整理
导读:我刚刚抛出了所有关于Java优化的知识.我有以下任务: 给定表示比赛场地和场地位置的2D数组,填充另一个数组,其中包含玩家可以进入该区域中每个其他位置的步数.玩家可以向上,向下,向左和向右移动.例如,第一个邻居将全部为1,对角线全部为2. 对于第一次尝试,我尝
我刚刚抛出了所有关于Java优化的知识.我有以下任务: 给定表示比赛场地和场地位置的2D数组,填充另一个数组,其中包含玩家可以进入该区域中每个其他位置的步数.玩家可以向上,向下,向左和向右移动.例如,第一个邻居将全部为1,对角线全部为2. 对于第一次尝试,我尝试了一种简单的4向Floodfill算法.它的速度非常慢. 其次,我决定摆脱递归并使用一个简单的队列.它工作得很好,速度很快(非常大约20倍).这是代码:
现在,“常识”告诉我,使用静态数组和int-pointer的队列操作会更快.所以我删除了Queue并使用标准的int []数组.代码是相同的,除了类似队列的操作.它现在看起来像这样(你可以看到,我用来生活在C方:) :):
当我运行这个“优化代码”时,它明显慢于使用Queue,速度只有递归技术的两倍.当我将数组声明为实例变量时,几乎没有任何区别.这怎么可能? 最佳答案
你在优化的同时颠倒了我的想法;
这通常会给你不同的表现;-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |