文章編號: 236399 - 上次校閱: 2005年9月30日 - 版次: 4.1

如何疑難排解 Visual C++ 的效能問題

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
重要: 本文包含修改登錄的相關資訊。修改登錄之前請確定它備份起來,並請確定您瞭解如何在發生問題時還原登錄。如如何備份、 還原,以及編輯登錄有關,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
256986? (http://support.microsoft.com/kb/256986/EN-US/ ) Microsoft Windows 登錄的描述

在此頁中

全部展開 | 全部摺疊

結論

本文說明可以改進效能的 Visual C++ 在各種情況中的步驟。所有下列案例套用到 Visual 的 C + + 6.0 並某些也套用到 Visual C++ 5.0。

其他相關資訊

警告: 如果您未正確使用登錄編輯程式可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 不保證您可以解決因不當使用 「 登錄編輯器 」 的問題。使用 「 登錄編輯程式 」,請自行負擔相關的風險。

改善 Visual C++ 效能的建議

  • 每個工作區有具有與其相關聯的.ncb 和.opt 副檔名的檔案。這些檔案可能損毀。若要重新產生它們,先關閉工作區。請切換至 [工作區目錄重新命名或刪除這兩個檔案。重新開啟工作區將會重新產生它們。建立檔案時,您可能會遇到延遲。

    注意:.ncb 檔案會保留 ClassView、 IntelliSense 及 [WizardBar 資訊。.opt 檔案是工作區的組態檔。刪除.opt 檔案,將會導致目前的視窗位置、 中斷點和少數其他次要設定的遺失。

    如需詳細資訊請按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    173164? (http://support.microsoft.com/kb/173164/EN-US/ ) PRB: 載入一個工作區是 Visual C++ 中緩慢
  • Visual C++ 6 只:IntelliSense 可以減緩 Visual C++。要檢查,並解決此問題停用 IntelliSense 從 [工具] 功能表中選取 [選項]。在 [編輯器] 索引標籤上,清除陳述式完成選項群組中的所有核取方塊。如需詳細資訊請按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    153284? (http://support.microsoft.com/kb/153284/EN-US/ ) 在 Visual C++ 6.0 中的 IntelliSense 的資訊: 限制
  • 來源的程式碼控制軟體,例如 Microsoft Visual SourceSafe,整合與 Visual C++ 整合式的開發環境 (IDE),可以設定為在 Visual C++ 啟動期間連線至來源的程式碼伺服器。在這種情況下在 [網路連線遺失將會導致 Visual C++ 十分緩慢啟動。若要改善效能,請確保適當的網路連線或停用來源的程式碼控制軟體整合與 Visual C++ IDE。若要執行後者,結束 Visual C++],然後再使用 [找出下列登錄機碼並將其停用] 值為 (DWORD) 0x00000001 的 [RegEdit.Exe:
    HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Source Control\Disabled
    						
    注意: 確定修改登錄之前,請先結束 Visual C++ 鍵 ; 否則您所做的變更將不會生效。
  • 來源的程式碼控制軟體可以在原始程式碼控制之下的 Visual C++ 專案上執行背景狀態更新。如果啟用此功能這些更新可能會導致回應緩慢 IDE。若要停用這些背景更新,選取 [從 [工具] 功能表的 [選項]。然後按一下 [原始檔控制] 索引標籤,並清除 [執行幕後狀態更新] 核取方塊。 如需詳細資訊請按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    195375? (http://support.microsoft.com/kb/195375/EN-US/ ) FIX: ClassView 時,可能會非常緩慢 SourceSafe 正在使用
  • 將您的原始程式檔放在少於 64 網路目錄。這有助於因為 Visual C++ 用來取得檔案變更通知的方法會掃描 64th 和目錄上方每隔 5 秒。

    如需詳細資訊請按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    216098? (http://support.microsoft.com/kb/216098/EN-US/ ) PRB: Visual C++ IDE 降低當檔案在許多目錄
  • 當您使用原始檔編輯器及資源編輯器時,[WizardBar 可能會造成效能問題。停用 [WizardBar 並重新啟動 Visual C++ 可能會提高效能。如需詳細資訊請按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
    202591? (http://support.microsoft.com/kb/202591/EN-US/ ) 注意: 開發 o 人 h 員 ? 工 u 具 ? Studio 原始檔] 及 [對話方塊編輯器回應緩慢
    170511? (http://support.microsoft.com/kb/170511/EN-US/ ) PRB: WizardBar 通知減慢對話方塊編輯器
  • 將大量的資源分割成資源專用 DLL 可以改善 IDE 的效能。您可以由 [AppWizard 所建立的 Microsoft 基礎類別 (MFC) 應用程式中加入大約 100 對話方塊來查看。建立關聯這些對話方塊,以使用 [ClassWizard 的程式碼中任何控制項,將導致該對話方塊的效能問題。

    之前 embarking 專案上,您可以考慮設計專案,以保留資源專用 DLL 內的當地語系化的資源。請參閱 MSDN Online Libraries (http://msdn.microsoft.com/en-us/library/default.aspx) (如需詳細資訊在下列的 MFC 技術注意事項:
    TN057: Localization of MFC Components (http://msdn.microsoft.com/en-us/library/x6h91d9w.aspx)
    您也可能要考慮群組您的資源並將它們放在不同的資源檔 (.rc) 而不需要在一個檔案。請參閱 MSDN Online Libraries (http://msdn.microsoft.com/en-us/library/default.aspx) (如需詳細資訊在下列的 MFC 技術注意事項:
    TN035: Using Multiple Resource Files and Header Files with Visual C++ (http://msdn.microsoft.com/en-us/library/6t3612sk.aspx)
  • Visual C++ 6 只:編輯原始程式碼偵錯工作階段可能很慢。停用編輯後繼續] 選項可提高執行效能。如果要執行這項操作,從 [工具] 功能表選取 [選項]。在 [偵錯] 索引標籤上,清除 [偵錯命令叫用編輯後繼續] 核取方塊。您可能也想要避免使用 [編輯而繼續編譯器切換/ZI,並使用/Zi 代替。
  • 請留意的所有的增益集和因為密集的處理程序或設計不良的巨集] 及 [增益集可以減緩 Visual C++ 在 IDE 中執行的巨集。若要從 [工具] 功能表,請檢查此,選取 [自訂]。所有載入增益集,且巨集列在 [增益集] 和 [巨集檔] 索引標籤。若要測試是否這些會降低效能,清除所有增益集和巨集的核取方塊。結束 Visual C++ 並重新啟動以確保這些增益集和巨集都卸載。
  • 找出是否您的檔案都位於遠端的非 Microsoft 作業系統上。請確定已正確設定網路用戶端軟體。增加的網路流量可能也會影響效能。
  • 專案相依性,也可能會增加建置時間。如需詳細資訊請按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    229030? (http://support.microsoft.com/kb/229030/EN-US/ ) FIX: 具有許多相依性的工作區可能會出現停止回應
    匯出專案的產生檔案也可能是在這種情況下很慢。
  • 大型的搜尋路徑包含檔也可能會降低效能。Visual C++ 必須搜尋包含檔找不到更多的路徑,會花較長的編譯。使用網路路徑可能也會造成效能問題。若要到搜尋路徑特定專案,請依照下列步驟執行:

    1. 按一下 [專案] 功能表 設定]
    2. 在 [設定] 對話方塊選取 [C/C + +] 索引標籤。
    3. 類別] 下拉式清單中選取 [前置處理器]。
    4. 特定專案包括路徑皆位於 其他包括目錄] 編輯方塊。
    若要到搜尋路徑套用至整個 Visual C++ 請依照下列步驟執行:
    1. 按一下 [工具] 功能表 選項
    2. 在 [選項] 對話方塊中選取 [目錄] 索引標籤。
    3. 顯示的目錄] 清單中,選取 [包含檔案]。
  • 您可能正在執行的系統虛擬記憶體和硬碟空間不足。如果需要新增更多的 RAM (隨機存取記憶體) 或新增較大的硬碟可能會提高效能。

    在執行 Windows NT 的電腦上使用來監視記憶體使用量的 [工作管理員]。在執行 Windows 95 或 Windows 98 的電腦中,您可以使用資源計量器。若要安裝資源計量器,請到控制台] 中的 [新增/移除程式選擇 Windows 安裝程式] 索引標籤,然後按兩下 [系統工具。資源計量器應該被列為其中一項工具。選取核取方塊,然後按一下 [確定] 來安裝它。您也可以使用處理序檢視器 (PView.exe) 的 Visual C++ 所隨附。
  • 寶貴的 CPU 時間和記憶體,可能會利用其他程式或服務。在這種情況下您可能會暫時移除 [系統啟動] 資料夾中的程式,並重新啟動電腦。在執行 Windows NT 的系統可能有一個以上的 [啟動] 群組 ; 清空所有這類啟動群組]。您可以使用前一個步驟中所提及的工具來監視 CPU 及記憶體使用率。

    如需有關自訂和停用 [啟動] 群組的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
    152122? (http://support.microsoft.com/kb/152122/EN-US/ ) 如何自訂 [開始] 或 [程式] 功能表
    81606? (http://support.microsoft.com/kb/81606/EN-US/ ) 停用 Windows 中的 [啟動] 群組
  • 在背景中執行的防毒程式可能會掃描您正在處理的檔案。如果暫時停用病毒掃描程式可以改善 Visual C++ 效能,然後設定病毒掃描程式掃描較不常或連絡軟體廠商,取得最新的更新。
  • 不正確的驅動程式可能潛在造成 repainting 延遲的效能問題的原因。排除可能的原因,效能問題的顯示驅動程式。請執行 Windows NT 的電腦的嘗試另以重現問題導致 Windows NT VGA 模式新檔]。在執行 Windows 95 或 Windows 98 的電腦,變更顯示卡以標準的 VGA 使用 [控制台] 中的 [顯示應用程式。這些模式停用協力廠商顯示器驅動程式。

    如果驅動程式是在容錯,請試著取得更新的版本。暫時的因應措施可能會涉及變更顯示設定。從控制台中開始顯示程式,然後選取 [設定] 標籤,變更桌面的解析度、 重新整理頻率或數目色彩由系統使用。
  • 專案資料夾中的.OPT 檔案可能會取得損毀。Visual C++ 插入大量的部份的中斷點多次時,就會是一個徵狀。在這種情況下啟動偵錯應用程式之後, IDE 變成沒有回應的幾分鐘的時間。要疑難排解、 關閉工作區、 刪除.OPT 檔案,請重新開啟工作區重設任何您想要的中斷點和/或.OPT 檔案中所儲存的專案設定。

這篇文章中的資訊適用於:
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
關鍵字:?
kbmt _ik920 kbclassview kbclasswizard kbeditor kbfaq kbgrpdstools kbhowto kbide kbvc600faq kbwizard KB236399 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:236399? (http://support.microsoft.com/kb/236399/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。