All you need to know about Process and Thread priorities
*** All you need to know about Process and Thread priorities ***[ Abstract ]
It is very important to understand that a correct application of process and thread priorities for some
data intensive processing could improve performance and complete a task in a shorter period of time.
What performance gains could you expect when priority of a process, or a thread, is boosted up?
On Windows platforms some issues are possible, since Win32 API is Not the same for different platforms, like Desktop, Embedded ( CE ) or Mobile.
Here is an example of a Microsoft C++ compiler output for a Windows CE Embedded platform:
------ Build started: Project: ScaLib, Configuration: Release Windows CE (ARMV4) ------
Copying ScaLib Header Files...
*** ScaLib Message: Compiling with Visual Studio 2005 ***
*** ScaLib Message: Configuration - Release Windows CE - _WINCE_MSC - RELEASE ***
*** ScaLib Message: Compiling for ARM Processing Unit ( 32-bit ) ***
# Diagnostics: Target Processing Unit: ARM
*** ScaLib Message: Classic Processing Model ***
*** ScaLib Message: Native IRT-Domains ***
# Diagnostics: IRT-Domain: GEN - Native
# Diagnostics: IRT-Domain: MMX - Emulated - 64-bit
# Diagnostics: IRT-Domain: SSE - Emulated - 128-bit
# Diagnostics: IRT-Domain: SSE2 - Emulated - 128-bit
# Diagnostics: IRT-Domain: AVX - Emulated - 256-bit
# Diagnostics: IRT-Domain: AVX2 - Emulated - 512-bit
*** ScaLib Message: Unicode Character Set ***
*** ScaLib Message: Support of HRT-Functions Enabled ***
C:\WorkEnv\AppsWorkDev\AppsSca\ScaLib\../../Include/DevHrtAL.h(541) : error C2039: 'SetPriorityClass' : is not a member of 'global namespace'
C:\WorkEnv\AppsWorkDev\AppsSca\ScaLib\../../Include/DevHrtAL.h(541) : error C3861: 'SetPriorityClass': identifier not found
*** ScaLib Message: Support of IRT-Domains Enabled ***
ScaLib - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Note: As you can see SetPriorityClass is Not supported on Windows CE Embedded platforms.
[ Computer System used for performance evaluations ]
** Dell Precision Mobile M4700 **
Intel Core i7-3840QM ( 2.80 GHz )
Ivy Bridge / 4 cores / 8 logical CPUs / ark.intel.com/products/70846
NVIDIA Quadro K1000M ( 192 CUDA cores / 2GB memory )
Windows 7 Professional 64-bit SP1
Size of L3 Cache = 8MB ( shared between all cores for data & instructions )
Size of L2 Cache = 1MB ( 256KB per core / shared for data & instructions )
Size of L1 Cache = 256KB ( 32KB per core for data & 32KB per core for instructions )
Display resolution: 1366 x 768