В GCC, существует больше к нему, чем это. В инструкции необходимо сказать компилятор, что изменилось, так, чтобы его оптимизатор не завинчивал. Я не эксперт, но иногда это выглядит примерно так:
asm ("lock; xaddl %0,%2" : "=r" (result) : "0" (1), "m" (*atom) : "memory");
Это - хорошая идея записать некоторый пример кода в C, затем попросить, чтобы GCC произвел протокол ассемблирования, затем изменил тот код.
Используйте тест Apache Benchmark (ab). Это инструмент командной строки, который поставляется с веб-сервером apache. Если вы используете * nix, скорее всего, он уже установлен на вашем компьютере. Например, если вы хотите отправить 1000 запросов на веб-сервер, работающий на локальном хосте, используя 10 параллельных потоков, вы должны сделать это:
$ ab -n 1000 -c 10 http://localhost/
Он выдаст хороший отчет, содержащий интересную статистику, такую как количество запросов в секунду, количество сбоев. и многое другое.
Попробуйте Grinder , он достаточно прост в использовании и может содержать скрипты.