我的形状可以有多个轮廓和线段。
我主要存储someArray[theContour][theSegment]
之类的信息。
我想存储每个段的边界,这是2d中的4个元素和3d中的6个元素的数组。
所以它就像:bounding[theContour][theSegment][4]
。
目前我只在方法被调用时创建所需的部分:
public void calculateBounding(int contour, int segment) {
if (boundingContourSegment == null) {
boundingContourSegment = new float[nOfContours][][];
}
if (boundingContourSegment[contour] == null) {
boundingContourSegment[contour] = new float[nOfSegments[contour]][];
}
if (boundingContourSegment[contour][segment] == null) {
boundingContourSegment[contour][segment] = new float[size];
}
我的问题是,这对性能有害吗?一次创建整个数组(或者至少是特定轮廓的所有部分)是否更好?
答案 0 :(得分:0)
我想,你会更频繁地调用你的calculateBounding方法。如果您的细分受众群将在较长时间内创建,则可能会出现问题。这可能是缓存等问题,这意味着您的细分将遍布内存。在高度优化的环境中,这是一个瓶颈,因此它取决于您的应用程序上下文,否则立即创建它。