2012-01-21 93 views
1

我正在使用Alternativa3D 7.8引擎編寫AS3遊戲,它只是沒有我希望用它實現的FPS,我試圖完全理解爲什麼。我知道,在場景中使用3D對象可能會嚴重影響性能,但我只使用數量非常有限的3d對象,並且每個對象都具有相對較小的多邊形數量。Low Flash AS3性能

我想知道是否有其他東西像內存泄漏導致此場景的實際渲染的頂部。

我想找出一種方法來查看性能如何分佈在我的代碼中,以查看是否有某些區域導致此問題。我通常只能在我的電腦上獲得大約10-15 FPS,如果可能的話,我希望能達到20-24或更高。

+4

我不認爲任何人都可以回答你的問題沒有看到代碼。你需要自己做測試 - 禁用代碼的一些部分,看它是否會影響幀速率,然後禁用其他部分並檢查幀速率等,最終你可能會發現瓶頸在哪裏。 –

+4

一個好的開始是使用8.x引擎,這似乎是使用硬件加速的Stage3D。 7.x純粹運行在軟件上,毫無疑問會慢幾個數量級。 – grapefrukt

回答

1

我不認爲這個問題應該被低估,儘管它有點寬泛。 OP詢問關於AS3應用的一般性能提示。

的確,我們不能在沒有看到他的代碼的情況下給他特定的指針,但是我們仍然可以爲他提供更一般的提示/技巧。這裏有一些分析,很一般:

我不認爲你的性能問題必然與你的3D有關,儘管他們可能會。即使遊戲世界出現在屏幕上,即使鼠標移動速度大大減慢,而我暫停它的幀速度也會提高 - 這意味着我在每一幀都進行了大量的迭代和計算。

我會從這開始:你的主遊戲循環中是否有任何計算密集的循環?例如,我看到你在海平面上工作,因爲它會影響陸地 - 你是否在做每個框架上的所有水屬性計算?

擁有大量「3D」對象並不一定是個問題,因爲3D對象只是一組點。它們比2d對象更加密集,因爲它包含了一個額外的維度,但並不是那麼密集,以至於幾個3d對象會導致這種性能。我不認爲他們是你的問題(儘管我可能是錯的)。

相反,它是你正在執行什麼樣的計算。尋找循環,找出可以註釋的內容並立即看到更好的性能,然後一旦你將它隔離開來,看看你可以做些什麼來緩存這些計算的輸出,這樣你就不必在每一幀重新計算它們。

乾杯, MB