- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
*** 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?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Take a look at results of some evaluation:
[ Test-case 1 ]
...
[ Normal Priority ]
CrtSetZeroPs128 - Executed in: T1=135380280 clock cycles ( P1 )
...
[ High Priority ]
CrtSetZeroPs128 - Executed in: T2=135232336 clock cycles ( P2 ) - 0.109% faster than P1
...
[ Realtime Priority ]
CrtSetZeroPs128 - Executed in: T3=135197568 clock cycles ( P3 ) - 0.135% faster than P1
...
T1 - T2 = 147944 clock cycles
T1 - T3 = 182712 clock cycles
T2 - T3 = 34768 clock cycles
Where,
P1 - Processing 1
P2 - Processing 2
P3 - Processing 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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...
Compiling...
Stdphf.cpp
*** 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[ 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
32GB RAM
320GB HDD
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

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page