使用 -qpdf2 重新編譯或鏈結

使用與之前相同的編譯器選項,重新編譯或鏈結您的程式,但將 -qpdf1 變更為 -qpdf2此步驟稱為 PDF2 步驟

如果要最佳化整個應用程式,您可以在鏈結步驟中的執行檔層次執行 PDF2 步驟,並為您的程式建立執行檔。 如需詳細資料,請參閱 執行檔層次設定檔導向的意見

除了最佳化整個應用程式之外,您還可以在編譯時期的物件層次執行 PDF2 步驟,並為您的程式建立物件檔。 對於將修補程式或更新項目配送為物件檔或程式庫而不是執行檔的應用程式而言,這可能是一種優勢。 在此情況下,您無法啟用程序間分析 (IPA) 最佳化。 如需詳細資料,請參閱 物件層次設定檔導向的意見

用法

累計側寫資訊是用來細部調整最佳化。 產生的程式不包含側寫額外負擔,並以全速執行。 您必須確定饋送至 PDF2 步驟的 PDF 檔案是在 PDF 訓練步驟中產生的檔案。 例如,在 PDF1 步驟期間使用 -qpdf1=pdfname=file_path 選項時,您必須在 PDF2 步驟期間使用相同的 -qpdf2=pdfname=file_path 選項,編譯器才能辨識正確的 PDF 檔案。 此規則也適用於 -qpdf[1|2]=exename-qpdf[1|2]=defname 選項。

強烈建議 在特定程式的所有編譯步驟中使用相同的最佳化等級。 否則, PDF 處理程序無法正確地最佳化您的程式,甚至可能會使它變慢。 所有影響最佳化的編譯器設定必須相同,包括配置檔所提供的任何編譯器設定。

您可以修改原始碼,並使用 -qpdf1-qpdf2 選項來編譯您的程式。 在 PDF 處理程序的第二階段期間,仍然可以保留並使用舊的側寫資訊。 編譯器會發出警告清單,但編譯不會停止。 也會發出一則參考訊息,其中含有 0-100 範圍內的數字,以指出舊側寫資訊的過時程度。 如果您尚未在 -qpdf1 與 -qpdf2 階段之間變更程式,則數目為 100 ,這表示可以使用所有側寫資訊來最佳化程式。 如果數字是 0 ,表示側寫資訊完全過時,且編譯器無法利用任何資訊。 當數字小於 100 時,您可以選擇使用 -qpdf1 選項重新編譯您的程式,並重新產生側寫資訊。

如果編譯器無法讀取此步驟中的任何 PDF 檔,編譯器會發出錯誤訊息 1586-401 ,但會繼續編譯。 如果您要編譯器停止編譯,請指定 -qhaltonmsg=1586-401

如果您想要消除 PDF 資訊,請使用 cleanpdf 指令。