1

我有一个在循环中执行的程序代码的平静。这种代码和平需要一个大数组,但仅用于读取而不是操作目的。我在循环之前生成一次这个数组。

现在我想将此代码移动到一个函数中以便再次使用它是一些其他脚本,但我不知道如何以一种干净的方式进行操作,但仍然具有良好的性能:

  • 每次在函数本身中生成这个大数组会很糟糕,因为它总是相同的数组并且会产生不必要的开销。
  • 我不想使用全局数组,因为这是不好的做法
  • 因此,我想每次调用该函数时最好将其作为参数传递。

我也不太喜欢最后一个选项,因为它会使参数列表变得混乱,而且我不确定由此引起的开销。据我了解,每次都会复制数组 - 因此通过引用传递它是一个好主意(通过使用 & 运算符)?

4

4 回答 4

3

一个真正关心性能的人应该

避免在性能关键代码中处理大型数组。

而不是玩加速本质上缓慢的过程的技巧。

因此,在不知道真实案例(数组的目的、处理和内容)的情况下,唯一的答案可能是:

因此,将您的数组转换为数据库并仅选择必要的数据。

这是对这样一个一般问题的一般答案。

于 2012-05-07T09:44:38.110 回答
1

您可以序列化您的数组并在文件中写入序列化。因此,读取该文件、反序列化并稍后在代码中使用它会更快。

于 2012-05-07T09:37:33.883 回答
1

使用OO-Programming,创建一个具有两种方法的类,一种用于生成数组,第二种用于使用数组进行计算。使用像 Singleton 这样的模式来确保您的对象是唯一的实例或使用静态变量。制作一个包以在不同的脚本/项目之间共享这个类。

既然问题很笼统,答案就很抽象。

于 2012-05-07T10:56:41.540 回答
-2

我想通过引用传递它已经足够了,但有时会通过引用警告生成时间调用传递.. 以后可能会给您带来麻烦。

于 2012-05-07T09:47:35.770 回答