2011-09-30 102 views
2

我想釋放我的Flash應用程序不處於發佈模式,但在調試模式下發布 以在發佈應用程序後查看trace()的結果。

我不在乎調試模式使處理速度慢一點。
除了處理速度,釋放在調試模式下編譯的Flash應用程序是否有缺點?

由於調試模式,應用程序是否有可能拋出應用程序用戶的異常或Flash Player崩潰?發佈在調試模式下編譯的Flash應用程序的缺點

+2

調試增加約9K的文件大小。閃存調試播放器用於通過公共錯誤,但大約10+它只將錯誤引發到遠程調試會話(很好,但不是)。如果您還沒有,我建議您從閃存進行遠程調試。 – Jacksonkr

+1

如果您將痕跡()放入其中,它可能對您有所幫助以進行調試是的,但它也可能對嘗試瞭解您的應用/遊戲並潛在竊取它的黑客有所幫助。那就是......如果你在項目的每個關鍵部分留下痕跡。 – bigp

回答

4

這裏有一些缺點。我做了一些簡單的測試,但它們並沒有真正證明任何事情,因爲他們不知道是否是由不同播放器引起的,以及額外的內存/文件大小值是否增加線性或保持在該級別。他們只是表明有差異。

  • 增加的文件大小
    • 測試器(mxmlc 4.5.1)在一個單一的線空文檔類:
      • -debug=false:550字節
      • -debug=true:667字節
    • 再添每行代碼的附加行號指令(甚至可能用於每個聲明/語句/表達式)
  • 包含您的項目結構:.as文件的完整路徑。
    • 可能的隱私問題(可以顯示本地用戶名)
    • 顯示內部項目名稱,也許內部版本,如果在路徑中使用
    • 可能表示使用OS和/或IDE
  • 內存消耗增加
    • 非常簡單的測試看任務管理器:for循環創建本地對象
      • debug:〜6300k - 7400k
      • 版本:〜5800K - 6900k
  • 較慢(如已經在問題中提到)

我不知道如果安全是一個問題在這裏,因爲跟蹤報表不要透露任何無法從內存中提取或通過反編譯重構的內容。也許跟蹤的存在表明它可能是應用程序的關鍵部分,但通常甚至非調試字節碼仍包含這些跟蹤指令。行號可以被反編譯器用來創建漂亮的代碼。

+2

如果您提供包含'C:\ Users \ Smecksy133tKillerJoe \ retarded clients \ screwed \ very_unstable_alpha \ com \ banana \ Main.as'的東西,並且仍然期望獲得報酬,則包含的項目結構可能最差。 – Kapep

+0

謝謝! 我不喜歡在我的計算機上公開文件路徑,但幸運的是我爲我的項目使用無意義的目錄名稱。內存消耗和文件大小對我來說並不重要。 所以我要在調試模式下發布我的應用程序。 –

2

@kapep的回答是正確的調試模式對你的瑞士法郎做的事情。

,但它不是neccessary使用調試模式的痕跡 - 在發佈模式下編譯並使用不同的調試工具,像

和也許可以使用日誌框架來使用正常的跟蹤語句以及外部日誌記錄器捕獲的語句。

我可以推薦這個人在這裏:parsley+spicelib

這裏是一個簡短的手冊:http://www.spicefactory.org/parsley/docs/2.0/manual/logging.php#intro

相關問題