Race-free Multithreading

http://bartoszmilewski.wordpress.com/2009/05/26/race-free-multithreading/

Debug Diagnostic Tool v1.1

http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en

http://www.ddj.com/cpp/217700478

STL Breaking Changes in Visual Studio 2010 Beta 1

http://blogs.msdn.com/vcblog/archive/2009/05/25/stl-breaking-changes-in-visual-studio-2010-beta-1.aspx

Intel® Parallel Amplifier

http://software.intel.com/en-us/intel-parallel-amplifier/

Intel® Parallel Inspector

http://software.intel.com/en-us/intel-parallel-inspector/

ASSERT do pliku

    HANDLE hLogFile;
    hLogFile = CreateFile("c:\\log.txt", GENERIC_WRITE,
    FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
    FILE_ATTRIBUTE_NORMAL, NULL);
    _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_ASSERT, hLogFile);


 

CPU cache

http://en.wikipedia.org/wiki/CPU_cache

False Sharing - Cache misses and cache line contention

Naprawdę ciekawy artykuł. Otwiera oczy na całkiem ciekawe powody problemów z wydajnością na kilku procesorach.

http://www.ddj.com/go-parallel/article/showArticle.jhtml?articleID=217500206&pgno=1&queryText=

The general case to watch out for is when you have two objects or fields that are frequently accessed (either read or written) by different threads, at least one of the threads is doing writes, and the objects are so close in memory that they're on the same cache line because they are:


  • objects nearby in the same array, as in Example 1 above;

  • fields nearby in the same object, as in Example 4 of [3] where the head and tail pointers into the message queue had to be kept apart;

  • objects allocated close together in time (C++, Java) or by the same thread (C#, Java), as in Example 4 of [3] where the underlying list nodes had to be kept apart to eliminate contention when threads used adjacent or head/tail nodes;

  • static or global objects that the linker decided to lay out close together in memory;

  • objects that become close in memory dynamically, as when during compacting garbage collection two objects can become adjacent in memory because intervening objects became garbage and were collected; or

  • objects that for some other reason accidentally end up close together in memory.

Dlaczego w Polsce nie ma autostrad?

http://www.trystero.pl/archives/3276

Break Free of Code Deadlocks in Critical Sections Under Windows

http://msdn.microsoft.com/en-us/magazine/cc164040.aspx
RTL_CRITICAL_SECTION
RTL_CRITICAL_SECTION_DEBUG


 

Software Optimization Guide for AMD Family 10h Processors

C and C++ Source-Level Optimizations
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/40546.pdf

  • Declarations of Floating-Point Values
  • Using Arrays and Pointers
  • Unrolling Small Loops
  • Arrange Boolean Operands for Quick Expression Evaluation
  • Expression Order in Compound Branch Conditions
  • Long Logical Expressions in If Statements
  • Dynamic Memory Allocation Consideration
  • Unnecessary Store-to-Load Dependencies
  • Matching Store and Load Size
  • Use of Function Prototypes
  • Use of const Type Qualifier
  • Generic Loop Hoisting
  • Local Static Functions
  • Explicit Parallelism in Code
  • Extracting Common Subexpressions
  • Sorting and Padding C and C++ Structures
  • Replacing Integer Division with Multiplication
  • Frequently Dereferenced Pointer Arguments
  • 32-Bit Integral Data Types
  • Sign of Integer Operands
  • Accelerating Floating-Point Division and Square Root
  • Speeding Up Branches Based on Comparisons Between Floats
  • Improving Performance in Linux® Libraries
  • Aligning Matrices

Visual Studio 2010 Beta

http://msdn.microsoft.com/en-us/netframework/dd582936.aspx

Co z inflacją?

http://wojciechbialek.blox.pl/2009/05/Co-z-inflacja.html

LPMud driver - kod kompresji MCCP

Tak odkopałem, może się komuś przyda. Kod kompresji LPMud. Protokół MCCP. Zmiany w driverze.
(Compression routines for LPMud driver. Implementation of the MCCP protocol).


http://kuling.pl/mm/mccp/
http://kuling.pl/mm/mccp/mudlib_driver/

Tools - .NET Memory Profiler

Fajny tool do profilowania zużycia pamięci. Polecam.
http://memprofiler.com/

Parę screenshot'ów
http://memprofiler.com/screenshots.aspx

O budżecie na chłodno

http://januszjankowiak.bblog.pl/wpis,o;budzecie;na;chlodno,24307.html

IMF Global Financial Stability Report - April 2009 - jeszcze raz

Międzynarodowy Fundusz Walutowy (MFW) przyznał się do wstydliwej pomyłki, korygując mocno przesadzone dane o zadłużeniu zmagających się z kryzysem krajów Europy Środkowej i Wschodniej – informuje czwartkowy „Financial Times”.
http://www.pb.pl/a/2009/05/07/Karygodna_wpadka_MFW


Pomyłka :)

Koniec złota na Liffe

http://dwagrosze.blogspot.com/2009/05/koniec-zota-na-liffe.html

CodeAnalyst 2.93.705 Beta

http://forums.amd.com/devblog/blogpost.cfm?catid=209&threadid=112867
http://developer.amd.com/cpu/CodeAnalyst/codeanalystwindows/Pages/default.aspx

API hooking revealed

http://www.codeproject.com/KB/system/hooksys.aspx

Do przejrzenia:

http://www.scribd.com/doc/400146/API-hooking-Part-I
http://vx.netlux.org/lib/vzo12.html
http://www.downloadthat.com/windows/Programming/C---Tools/Windows-API-Hooking-SDK.html
http://en.wikipedia.org/wiki/DLL_injection
http://www.codeproject.com/KB/DLL/DLL_Injection_tutorial.aspx

http://www.codeproject.com/KB/system/APIHookingRevisited.aspx
http://www.codeproject.com/KB/system/APIHookingPart2.aspx

__declspec(novtable)

http://msdn.microsoft.com/en-us/library/k13k85ky.aspx


http://msdn.microsoft.com/en-us/magazine/cc301398.aspx


 

C++ initializes class members in the order they are declared

http://msdn.microsoft.com/en-us/magazine/cc301399.aspx

Jak wygląda amerykański budżet?




http://www.widelec.pl/widelec/1,82861,6560906,Jak_wyglada_amerykanski_budzet_.html

 
Tomasz Kulig