簡體   English   中英

如何為基於Flex AIR的應用程序提供多進程體系結構?

[英]How to have a multi process architecture for my Flex AIR based application?

我在Flex中開發了一個AIR應用程序,該應用程序將處理播放不同的SWF文件。 我正在發現一些問題,因為我正在玩的這些SWF太重了。 我發現動畫不流暢,導致CPU使用率上升(我是因為Flex的單線程體系結構)。 因此,我計划為我的應用程序提供一個多進程體系結構。 像谷歌瀏覽器。 我有一個主應用程序作為一個進程,而其他SWF將在單獨的進程中運行,但應在主應用程序窗口內看到。 如何在Flex中實現? 謝謝!!

不幸的是,Flash運行時是單線程的。 但是,您可以通過明智地使用事件來模擬線程。 通過讓Flash Player處理何時執行代碼,可以將大型代碼塊分解為較小的,可被事件調用的方法,從而獲得可觀的性能提升。

我強烈建議您閱讀彈性賽道: http : //drawlogic.com/2008/04/22/a-peek-into-the-as3-and-avm2-virtual-machine-and-elastic-racetrack/

另一種選擇是將您的邏輯分發到多個SWF文件中,並通過LocalConnection進行通信。 如果我沒記錯的話,那么在Chrome中,每個Flash Player實例都應該有自己的進程; 您應該能夠以這種方式消耗大量CPU。

使用AIR進行嘗試不會有任何運氣。 也許可以使用Flash Player,因為您可以將HTML頁面用作周圍的容器,但是AIR對此沒有任何選擇。

必須說,如果您遇到這樣的性能問題,幾乎可以肯定,您可以在改善性能方面做得更好。

除了解決症狀(App運行緩慢)之外,如何解決原因(導致App運行緩慢的代碼)呢?

這是不可能的,因為Flash Player不允許多個線程。 希望他們將來會改變這一點。

暫無
暫無

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

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