簡體   English   中英

在Java中循環地將新數組初始化為函數參數。 性能

[英]Initializing new array as function argument, in a loop, in Java. Performance

是否為下面的代碼為每個循環運行分配了新的float數組?

for (Element e : elements) e.colorize( new float[] { 0.5f, 0.5f, 0.5f, 0.5f } );

將其更改為以下內容會提高性能嗎?

float[] color = new float[] { 0.5f, 0.5f, 0.5f, 0.5f };
for (Element e : elements) e.colorize(color);

性能上的提高主要是因為不再有任何內存分配開銷,並且可以節省大量空間。 但是更重要的是,在第二個代碼示例中,您要對同一數組進行着色,而在第一個代碼示例中,您每次都在對不同的數組進行着色。 如果這是您想要的,那就太好了! 如果沒有,那么您需要重新考慮您的代碼。

是的,你是對的。 第二個將更有效,因為該數組僅創建和初始化一次。

請注意,盡管您所有的colorize調用都將共享float[]數組,所以更改一個內容將對其全部更改。 在這種情況下,這不太可能成為問題,但需要注意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM