装完以后感觉编译速度更快了。 When Windows Defender (or any other anti-virus tool) sees the compiler creating a DCU file and the compiler calls CloseHandle on the file handle, the virus/malware scanner blocks the thread and takes its time to have a look at the file. This causes CloseHandle to take more than 2 milliseconds per file on my system. If you have 2500 units this sums up to 5 seconds. With Windows Defender disabled those 5 seconds go back to under 100 milliseconds. Because the compiler can’t work in those 5 seconds, the IDE Fix Pack now delegates the CloseHandle calls to a background thread. This means Windows Defender can scan the file while the compiler works on the next units without being blocked by the scan. On my Win32 test project this parallel execution made the rebuild 5 seconds faster. IDE Fix Pack guarantees that all written DCU files are closed before the binary executable is created. So if you have only some units you won’t see much of a speed improvement because the main thread may wait for the background thread to close all remaining files.
----------------------------------------------
-
Copyright (C) 2008-2016 Andreas Hausladen Use at your own risk.
applied: Template debug info generation limitation [bcc64.TemplateDebugInfoBloat] applied: Release unused memory [Compiler.ReleaseUnusedMemory.IDE] applied: Replace slow C-RTL functions in the Debugger [Debugger.CRTL] applied: Use default error mode for CreateProcess [Debugger.ErrorMode] applied: FullExpand HostApp [Debugger.FullExpandHostApp] applied: Cmdline args are truncated [Debugger.wsprintf.truncargs] applied: Editor Focus Fix [Editor.FocusFix] applied: Prevent ErrorInsight from always setting KibitzedSinceCompiled flag [ErrorInsight.SetKibitzedSinceCompiled] applied: Optimized AddToList (AddNotifier) function [IDE.AddToList] applied: ClassCompletion fix for class operator In [IDE.ClassCompletion.ClassOperatorIn] applied: Disable clipboard exception [IDE.ClipboardHistory.WMClipboardUpdate] applied: Fix for not finding message handlers if not using unit scope uses list [IDE.CodeCompleteUnitScopeMessageHandlers] applied: CodeInsight underscore handling [IDE.CodeComplUnderscore] applied: Sets CompileProgess hwndParent to Application.MainFormHandle [IDE.CompileProgess.PopupMode] applied: FindItemParent returns wrong TabSheet [IDE.Designer.FindItemParent] applied: Larger DFM load error dialogs [IDE.Designer.SmallErrorDlgs] applied: Disables the palette and package cache [IDE.DisablePackageCache] applied: Last line of un-commented comment isn't replainted [IDE.Editor.CommentRepaint] applied: Editor copy garbage is trailing banks are to be copied [IDE.Editor.CopyTrimTrailingBlanks] applied: Protects the editor kernel from making auto changes when undo is disabled [IDE.Editor.DisableUndoProtect] applied: Parenthese mismatching in string literals fix [IDE.Editor.ParanMatching] applied: Fixes a close EditorTab AV if CnWizards is installed [IDE.EditorControl.CnWizardsAV] applied: .NET XmlSerializer compiler output cache [IDE.ExternDCC] applied: Faster ExtractRelativePath replacement [IDE.ExtractRelativePath] applied: Faster string functions for FilePath operations [IDE.FilePathStrFunctions] applied: Reduces the IDE's ToolBar GDI handle usage [IDE.GDIHandles.ImageList] applied: Reduces the IDE's ToolBar GDI handle usage [IDE.GDIHandles.ToolBar] applied: $(Platform) global directory support [IDE.GlobalPlatformMacroDir] applied: Fix HelpInsight background thread wait time [IDE.HelpInsight.WaitFor] applied: Select all if IDEInsight edit gets the focus [IDE.IDEInsight.SelectAll] applied: Fix streaming of TImageList [IDE.ImageList.Write] applied: Reduce unnecessary calls to IntfCast [IDE.IntfCastReduction] applied: Uses TInterfaceList.GetThreadUnsafe for TBasePaletteGroup.GetItem [IDE.IntfCastReduction.MoreSpeed] applied: CodeInsight no clear unit cache (2) [IDE.KibitzNoClearUnitCache.InvokeCodeCompletion] applied: Slow IDE due to LiveBindings fix [IDE.LiveBindingSlowIDE] applied: Use new SelectDirectory dialog [IDE.NewSelectDirectoryDialog] applied: Cancels the background parser when closing a module [IDE.Parser.ElisionLock] applied: Refactor menu item OnUpdate [IDE.RefactoringCmdsUpdate] applied: Faster TUsesList.Clear [IDE.UsesList.Clear] applied: Hide Designer Guidelines [IDE.VCLDesigner.GuidelinesHide] applied: Disable VirtualTree timeBeginPeriod [IDE.VirtTree.timeBeginPeriod] applied: AnsiCompareFileName function optimized for the IDE [RTL.AnsiCompareFileName] applied: ObjectTextToBinary performance optimization [RTL.Classes.ObjectTextToBinary] applied: Faster ANSI StrLen [RTL.FastStrLenA] applied: DFM FieldAddress performance [RTL.FieldAddress] applied: FindHInstance last request cache [RTL.FindHInstance] applied: System unit optimizations [RTL.SystemOptimization] applied: Optimized TStringList.IndexOf [RTL.TStringList.IndexOf] applied: Optimized TStrings.IndexOfName [RTL.TStrings.IndexOfName] applied: Variants optimizations [RTL.VariantsConvOptimization]
----------------------------------------------
-