Из­ме­ре­ние ин­тер­ва­лов вре­ме­ни в Windows

Опи­сан­ные здесь функ­ции на­зы­ва­ют «тай­ме­ра­ми Windows».

Ино­гда нам нуж­но точ­но из­ме­рить ин­тер­ва­лы вре­ме­ни, в те­че­ние ко­то­рых вы­пол­ня­ют­ся раз­лич­ные ча­сти на­шей про­грам­мы. Ес­ли мы про­грам­ми­ру­ем под опе­ра­ци­он­ную си­сте­му Windows, то у нас есть сле­дую­щие воз­мож­но­сти:

  • timeGetTime() — воз­вра­ща­ет вре­мя в мил­ли­се­кун­дах с мо­мен­та стар­та опе­ра­ци­он­ной си­сте­мы («муль­ти­ме­дий­ный тай­мер»). Воз­вра­ща­е­мое зна­че­ние (ти­па DWORD) об­ну­ля­ет­ся каж­дые 49.71 дней. Не за­будь­те это учесть при из­ме­ре­нии вре­ме­ни. Точ­ность: от 5 до 1 мил­ли­се­кун­ды. Ес­ли вы хо­ти­те по­вы­сить точ­ность до 1 мил­ли­се­кун­ды, то мо­же­те по­ме­стить из­ме­ре­ние вре­ме­ни меж­ду вы­зо­ва­ми timeBeginPeriod(1); и timeEndPeriod(1);. Учти­те, что вы­зов timeBeginPeriod() мо­жет вре­мен­но по­вы­сить ча­сто­ту муль­ти­ме­дий­но­го тай­ме­ра во всей си­сте­ме, тем са­мым сни­зив её быст­ро­дей­ствие.
  • GetTickCount() — воз­вра­ща­ет вре­мя в мил­ли­се­кун­дах с мо­мен­та стар­та опе­ра­ци­он­ной си­сте­мы (об­ну­ля­ет­ся каж­дые 49.71 дней). Очень быст­рая функ­ция, так как про­сто воз­вра­ща­ет зна­че­ние со­от­вет­ствую­ще­го счёт­чи­ка. Од­на­ко точ­ность её низ­ка: обыч­но 55 мил­ли­се­кунд в Win 9X и 10 мил­ли­се­кунд в Win NT. Низ­кая точ­ность вы­зва­на тем, что для уве­ли­че­ния счёт­чи­ка ис­поль­зу­ют­ся пре­ры­ва­ния, ге­не­ри­руе­мые ча­са­ми ре­аль­но­го вре­ме­ни ком­пью­те­ра. Для ге­не­ра­ции со­об­ще­ний WM_TIMER, при­хо­дя­щих ва­ше­му при­ло­же­нию, то­же ис­поль­зу­ет­ся этот счёт­чик. Вы мо­же­те по­вы­сить точ­ность этой функ­ции до 1 мил­ли­се­кун­ды, ес­ли яв­ля­е­тесь счаст­ли­вым об­ла­да­те­лем Win 2000/XP. Для это­го нуж­но до­ба­вить ко­ман­ду /USEPMTIMER в boot.ini (в Win Vista это то­же мож­но сде­лать, но с ис­поль­зо­ва­ни­ем BCDedit). Это пе­ре­клю­чит HAL ва­шей си­сте­мы на ге­не­ра­цию пре­ры­ва­ний тай­ме­ра с ис­поль­зо­ва­ни­ем ACPI Power Management Timer (а не ча­сов ре­аль­но­го вре­ме­ни). Вы де­ла­е­те это на свой страх и риск. Будь­те го­то­вы к то­му, что функ­цио­ни­ро­ва­ние си­сте­мы мо­жет из­ме­нить­ся.
  • GetSystemTime() — те­ку­щее вре­мя (год, ме­сяц, день, ча­сы, ми­ну­ты, се­кун­ды, мил­ли­се­кун­ды). Точ­ность та же, что и у GetTickCount(), так как ис­поль­зу­ют­ся те же ча­сы ре­аль­но­го вре­ме­ни. Точ­ность то­же мож­но по­вы­сить с по­мо­щью клю­ча /USEPMTIMER. Ис­поль­зо­вать эту функ­цию для вы­чис­ле­ния ин­тер­ва­лов вре­ме­ни не­удоб­но, так как се­кун­ды, ми­ну­ты, ча­сы, и то­му по­доб­ные еди­ни­цы слож­но вы­чи­тать друг из дру­га. К то­му же си­стем­ное вре­мя в лю­бой мо­мент мо­жет из­ме­нить­ся (син­хро­ни­за­ция с сер­ве­ром вре­ме­ни, ли­бо пе­ре­ход на лет­нее вре­мя и об­рат­но).
  • Ма­шин­ная ин­ст­рук­ция RDTSC — чи­та­ет из про­цес­сор­но­го счёт­чи­ка чис­ло так­тов, про­шед­шее с мо­мен­та за­пус­ка про­цес­со­ра. Са­мый точ­ный счёт­чик из до­ступ­ных. Од­на­ко име­ют­ся сле­дую­щие про­бле­мы:
    • Ча­сто­та про­цес­со­ра не­из­ве­ст­на. Бо­лее то­го, она мо­жет ме­нять­ся со вре­ме­нем в за­ви­си­мо­сти от ре­жи­ма энер­го­сбе­ре­же­ния.
    • В мно­го­ядер­ных про­цес­со­рах и мно­го­про­цес­сор­ных си­сте­мах счёт­чик свой у каж­до­го ядра́/про­цес­со­ра. И эти счёт­чи­ки не син­хро­ни­зи­ро­ва­ны, так как я́дра/про­цес­со­ры мо­гут быть за­пу­ще­ны в раз­ные мо­мен­ты вре­ме­ни, и да­же мо­гут быть на не­ко­то­рое вре­мя при­оста­нов­ле­ны. По­это­му по­ка­за­ние это­го счёт­чи­ка бу­дет «пры­гать» при пе­ре­хо­де по­то­ка с од­но­го яд­ра на дру­гое.
  • QueryPerformance­Counter() — «тай­мер вы­со­ко­го раз­ре­ше­ния». Вве­дён фир­мой Microsoft, что­бы раз и на­все­гда по­ста­вить точ­ку в про­бле­мах из­ме­ре­ния вре­ме­ни. Ча­сто­та это­го тай­ме­ра (1 МГц и вы­ше) не ме­ня­ет­ся во вре­мя ра­бо­ты си­сте­мы. Ча­сто­ту мож­но узнать с по­мо­щью функ­ции Query­Per­for­mance­Fre­quen­cy(). Для каж­дой си­сте­мы Windows са­ма опре­де­ля­ет, с по­мо­щью ка­ких устройств реа­ли­зо­вать этот тай­мер. По­хо­же, это са­мый луч­ший спо­соб из­ме­ре­ния вре­ме­ни из всех, по­это­му о нём и по­го­во­рим.

Для ра­бо­ты с тай­ме­ром вы­со­ко­го раз­ре­ше­ния име­ют­ся две API-функ­ции:

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);

Не за­бы­вай­те, что сам вы­зов этих функ­ций за­ни­ма­ет не­ко­то­рое вре­мя, ко­то­рое да­же мо­жет ока­зать­ся боль­ше, чем из­ме­ряе­мый ин­тер­вал вре­ме­ни.

QueryPerformanceFrequency

Ар­гу­мент lpFrequency — ука­затель на пе­ре­мен­ную ти­па LARGE_INTEGER, в ко­то­рую бу­дет за­пи­са­на ча­сто­та тай­ме­ра (ти­ков в се­кун­ду).

Воз­вра­ща­е­мое зна­че­ние: ес­ли ком­пью­тер име­ет тай­мер вы­со­ко­го раз­ре­ше­ния, то воз­вра­ща­е­мая ве­ли­чи­на не­ну­ле­вая. Ес­ли же тай­мер от­сут­ству­ет ли­бо не под­дер­жи­ва­ет­ся BIOS, то функ­ция вер­нёт 0.

QueryPerformanceCounter

Ар­гу­мент lpPerformanceCount — ука­затель на пе­ре­мен­ную ти­па LARGE_INTEGER, в ко­то­рую бу­дет за­пи­са­но зна­че­ние тай­ме­ра, «на­бе­жав­шее» на дан­ный мо­мент (в ти­ках).

Воз­вра­ща­е­мое зна­че­ние: 0 в слу­чае ошиб­ки, ина­че не­ну­ле­вое зна­че­ние.

LARGE_INTEGER

Этот тип дан­ных опре­де­ля­ет­ся сле­дую­щим об­ра­зом:

typedef union _LARGE_INTEGER {
    struct {
        DWORD LowPart;
        LONG HighPart;
    };
    struct {
        DWORD LowPart;
        LONG HighPart;
    } u;
    LONGLONG QuadPart;
} LARGE_INTEGER;

Мы ви­дим, что здесь 3 эле­мен­та, на­хо­дя­щие­ся в од­ном ме­сте опе­ра­тив­ной па­мя­ти: безы­мян­ная ст­рук­ту­ра, хра­ня­щая две 32-х бит­ных «по­ло­вин­ки» чис­ла, ст­рук­ту­ра u с тем же со­дер­жи­мым, и 64-х бит­ное чис­ло (__int64). Всё так слож­но по­то­му, что «не­ко­то­рые си­сте­мы и ком­пи­ля­то­ры мо­гут не под­дер­жи­вать 64-х бит­ные чис­ла». Мы бу­дем поль­зо­вать­ся толь­ко QuadPart.

При­мер

Опи­сан­ные вы­ше функ­ции мож­но ис­поль­зо­вать при­мер­но так:

#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char **argv)
{
    LARGE_INTEGER timerFrequency, timerStart, timerStop;

    QueryPerformanceFrequency(&timerFrequency);
    QueryPerformanceCounter(&timerStart);

    //
    //Здесь код, время работы которого замеряем
    //

    QueryPerformanceCounter(&timerStop);
    double const t( static_cast<double>( timerStop.QuadPart -
        timerStart.QuadPart ) / timerFrequency.QuadPart );

    cout << "Time is " << t << " seconds." << endl;

    return 0;
}

Не всё так хо­ро­шо!

Так как в раз­ных си­сте­мах тай­мер вы­со­ко­го раз­ре­ше­ния реа­ли­зу­ет­ся с по­мо­щью раз­ных устройств, то будь­те го­то­вы к про­бле­мам, ес­ли этот тай­мер ра­бо­та­ет с по­мо­щью счёт­чи­ка так­тов про­цес­со­ра:

  • Встре­ча­ют­ся си­сте­мы, в ко­то­рых тай­мер вы­со­ко­го раз­ре­ше­ния ме­ня­ет ско­рость ра­бо­ты при пе­ре­клю­че­нии ча­сто­ты про­цес­со­ра.
  • Бы­ва­ет, что тай­мер «пры­га­ет ту­да-сю­да» при пе­ре­хо­де про­цес­са с од­но­го яд­ра на дру­гой.

Но, в от­ли­чие от счёт­чи­ка так­тов, для ко­то­ро­го та­кие «ано­ма­лии» — нор­ма, для тай­ме­ра вы­со­ко­го раз­ре­ше­ния это — глю­ки. И про­из­во­ди­те­ли про­цес­со­ров вме­сте с Microsoft ста­ра­ют­ся их ис­прав­лять. На­при­мер: http://www.​reghardware.​co.​uk/​2006/​07/​04/​amd_dual-core_tweak_tool/.

Ес­ли же вам нуж­на вы­со­кая на­дёж­ность, то от это­го тай­ме­ра при­дёт­ся от­ка­зать­ся. Ре­ко­мен­дую в этом слу­чае об­ра­тить свой взор на timeGetTime() в связ­ке с timeBeginPeriod() и timeEndPeriod().

Биб­лио­те­ка для ра­бо­ты с тай­ме­ром

Вид­но, что для из­ме­ре­ния ин­тер­ва­лов вре­ме­ни в про­грам­ме тре­бу­ет­ся за­во­дить до­пол­ни­тель­ные пе­ре­мен­ные, пи­сать лиш­ний и не­кра­си­вый код. По­это­му я на­пи­сал про­стей­шую биб­лио­те­ку для ра­бо­ты с тай­ме­ром, ко­то­рую вы мо­же­те ска­чать от­сю­да: SAnTimer.h (ли­цен­зия LGPL).

Биб­лио­те­ка предо­став­ля­ет про­грам­ми­сту класс timer::Timer, ко­то­рый, су­дя по на­зва­нию, ими­ти­ру­ет тай­мер. Вы мо­же­те со­здать в про­грам­ме не­сколь­ко тай­ме­ров. Каж­дый тай­мер в мо­мент со­зда­ния име­ет по­ка­за­ние «0». Тай­мер мож­но за­пу­стить, по­ста­вить на па­у­зу, и сбро­сить в ноль. Ин­тер­фейс клас­са сле­дую­щий:

class Timer
{ //Класс Timer имитирует некий счётчик времени,
    //  который можно запустить и остановить
public:
    typedef long long Time;

private:
    //Если true, то таймер запущен. Иначе -- нет
    bool state;

    //Сколько времени набежало за все предыдущие интервалы
    Time timeTotal;
    //Момент начала последнего, ещё незавершённого интервала (если запущен)
    Time timeLastStart;

    //Узнать текущее значение времени в "тиках"
    static inline Time now(void);

public:
    //Конструктор по-умолчанию
    inline Timer(bool start = false);
    //Конструктор копии
    inline Timer(Timer const &T);
    //Деструктор
    inline ~Timer(void);
    //Оператор присваивания
    inline Timer &operator=(Timer const &T);

    //Узнать текущее значение таймера в секундах
    inline double get(void) const;
    //Узнать текущее значение таймера в секундах
    inline operator double(void) const;
    //Узнать текущее значение таймера в "тиках" (максимальная точность)
    inline Time getTickCount(void) const;
    //Узнать частоту таймера (число "тиков" в секунду)
    static inline Frequency::Time getFrequency(void);

    //Запустить таймер
    inline void start(bool reset = false);
    //Запустить таймер и узнать значение на момент запуска
    inline double startGet(void);

    //Пауза таймера
    inline void pause(void);
    //Пауза таймера и возврат значения
    inline double pauseGet(void);

    //Остановка таймера. Отличается от паузы обнулением счётчика
    inline void stop(void);
    //Остановка таймера. Возвращается значение на момент остановки, ДО обнуления
    inline double stopGet(void);
};

Для то­го, что­бы со­здать тай­мер в про­грам­ме, нуж­но со­здать объ­ект клас­са timer::Timer. Не­обя­за­тель­ный ар­гу­мент кон­ст­рук­то­ра ука­зы­ва­ет на то, нуж­но ли за­пус­кать тай­мер сра­зу по­сле со­зда­ния, ли­бо он бу­дет за­пу­щен по­том с по­мо­щью вы­зо­ва со­от­вет­ствую­щей функ­ции.

На­зна­че­ние дру­гих ме­то­дов клас­са:

  • get(): узнать на­бе­жав­шее зна­че­ние тай­ме­ра (в се­кун­дах).
  • getTickCount(): узнать на­бе­жав­шее зна­че­ние тай­ме­ра (в ти­ках).
  • getFrequency(): узнать ча­сто­ту тай­ме­ра (ти­ков в се­кун­ду).
  • start(): за­пу­стить тай­мер.
  • startGet(): за­пу­стить тай­мер и узнать зна­че­ние тай­ме­ра на мо­мент за­пус­ка.
  • pause(): при­оста­но­вить тай­мер.
  • pauseGet(): при­оста­но­вить тай­мер и узнать его зна­че­ние (в се­кун­дах).
  • stop(): оста­но­вить тай­мер и сбро­сить его по­ка­за­ния в «0».
  • stopGet(): оста­но­вить тай­мер, узнать зна­че­ние тай­ме­ра на мо­мент оста­нов­ки, сбро­сить его по­ка­за­ния.

Опи­сан­ный вы­ше при­мер те­перь мож­но пе­ре­пи­сать сле­дую­щим об­ра­зом:

#include <iostream>
#include "SAnTimer.h" //Подключаем заголовочный файл библиотеки

using namespace std;

int main(int argc, char **argv)
{
    timer::Timer t(true); //Создаём таймер и сразу его запускаем

    //
    //Здесь код, время работы которого замеряем
    //

    //Таймер останавливается, и его значение сразу выводится:
    cout << "Time is " << t.stopGet() << " seconds." << endl;

    return 0;
}

Вид­но, что код стал го­раз­до про­ще. Но для бо­лее точ­но­го из­ме­ре­ния вре­ме­ни сле­ду­ет учесть, что функ­ция вы­во­да тек­ста ра­бо­та­ет очень мед­лен­но, и по­это­му нуж­но оста­но­вить тай­мер до на­ча­ла вы­во­да тек­ста:

#include <iostream>
#include "SAnTimer.h" //Подключаем заголовочный файл библиотеки

using namespace std;

int main(int argc, char **argv)
{
    timer::Timer t(true); //Создаём таймер и сразу его запускаем

    //
    //Здесь код, время работы которого замеряем
    //

    //Таймер останавливается, а затем его значение выводится:
    t.pause();
    cout << "Time is " << t << " seconds." << endl;

    return 0;
}

Функ­ция па­у­зы тай­ме­ра мо­жет быть ис­поль­зо­ва­на, на­при­мер, что­бы из­ме­рить сум­мар­ное вре­мя, про­ве­дён­ное про­грам­мой в ка­кой-ли­бо функ­ции:

#include <iostream>
#include "SAnTimer.h" //Подключаем заголовочный файл библиотеки

using namespace std;

timer::Timer t; //Создаём таймер

void measuredFunc(void)
{
    t.start(); //Запускаем таймер на время работы функции

    //
    //Здесь код функции
    //

    t.pause(); //Приостанавливаем таймер
}

int main(int argc, char **argv)
{
    //Вызываем несколько раз функцию:
    for(int i(0); i<10000; ++i)
    {
        measuredFunc();

        //
        //Здесь выполняем какие-нибудь другие действия
        //
    }

    //Выводим время на экран:
    cout << "Time is " << t << " seconds." << endl;

    return 0;
}

Биб­лио­те­ка реа­ли­зо­ва­на оп­ти­маль­но. При ком­пи­ля­ции с вклю­чён­ной под­ста­нов­кой inline-функ­ций за­мер вре­ме­ни бу­дет ид­ти не мед­лен­нее, чем ес­ли бы он был на­пи­сан пу­тём вы­зо­ва функ­ций GetPerformanceCounter(). Бо­лее то­го, вы­зов GetPerformanceFrequency() осу­ществ­ля­ет­ся один раз в са­мом на­ча­ле ра­бо­ты про­грам­мы, а за­тем по­лу­чен­ное зна­че­ние ис­поль­зу­ет­ся все­ми со­здан­ны­ми тай­ме­ра­ми.

Ре­ко­мен­дую так­же по­чи­тать

Beware of QueryPerformanceCounter()

What the /usepmtimer switch does when placed in a Microsoft Windows boot.ini?

Prototype implementations for a few simple Windows clocks

261 отзыв на запись «Из­ме­ре­ние ин­тер­ва­лов вре­ме­ни в Windows»

Спа­си­бо за ста­тью.
един­ствен­ное я её дол­го ис­кал, на­шел толь­ко че­рез QueryPerformanceCounter. до­бавь для неё те­ги , что то ти­па «из­ме­ре­ние ско­ро­сти ко­да».
а у ме­ня ка­сяк пол­ный: // var timer_frequency: Int64;
QueryPerformanceFrequency(timer_frequency);
ShowMessage(IntToStr(timer_frequency)); по­ка­зы­ва­ет все­гда 2833030000…и как это в ча­сто­ту пе­ре­счи­тать?
а вре­мя вы­пол­не­ния ко­да что я счи­таю по­лу­ча­ет­ся де­вять де­ся­ти­ты­сяч­ных…%(
2833030000 — это и есть ча­сто­та. 3 ги­га­гер­ца при­мер­но.
уж не вы ли это?о_О
вы с Ма­сте­ров/DeskSoft?х_Х зна­чит де­вять де­ся­ти­ты­сяч­ных — нор­маль­ный ре­зуль­тат?
Нет, это не я.
Очень по­лез­ная ста­тья. Спа­си­бо. Прав­да, хо­те­лось бы ре­а­би­ли­ти­ро­вать функ­цию GetSystemTime(). Точ­ность ее до­воль­но вы­со­ка (опре­де­ля­ет­ся ча­са­ми RTC на ма­те­рин­ке). Син­хро­ни­за­ция обыч­но раз в две не­де­ли. От лет­не­го вре­ме­ни не за­ви­сит, вы­ра­жа­ет­ся в UTC (по Грин­ви­чу). Лет­нее вре­мя вли­я­ет на GetLocalTime(). Да­ет от­счет в 100-на­но­се­кунд­ных ин­тер­ва­лах, на­чи­ная с 1 ян­ва­ря 1601 го­да. Кста­ти, это был по­не­дель­ник. Ес­ли не нра­вит­ся ст­рук­ту­ра SYSTEMTIME, пе­ре­во­дим в FILETIME функ­ци­ей SystemTimeToFileTime(). А это тот же LARGE_INTEGER, ко­то­рым вы поль­зу­е­тесь. Лич­но мне нра­вит­ся.
Ва­ше сред­ство ока­за­лось един­ствен­ным из ре­аль­но до­ступ­ных и ра­бо­таю­щих, ко­то­рое поз­во­ли­ло тай­ми­ро­вать вре­мя вы­пол­не­ния те­сти­ру­е­мо­го ко­да с нуж­ной точ­но­стью и ста­биль­но. Боль­шин­ство пред­ла­гае­мых в Се­ти при­ме­ров ра­бо­та­ют гру­бо и ре­зуль­тат силь­но за­ви­сит от со­пут­ствую­щей за­груз­ки си­сте­мы.
Вы­ра­жаю бла­го­дар­ность от се­бя лич­но и не­боль­шо­го ис­сле­до­ватель­ско­го кол­лек­ти­ва, ко­то­ро­му по­тре­бо­ва­лось вы­пол­нить оп­ти­ми­за­цию ко­да. Уда­чи Вам!
Всё хо­ро­шо, толь­ко вот как без­бо­лез­нен­но узнать, за­пу­щен тай­мер или нет?
Вот блин. За­спа­ми­ли бо­ты. При раз­ра­бот­ке на С++ ре­ком­мен­дую за­бить на все эти тай­ме­ры и юзать boost::chrono::steady_clock
Это очень ста­рая ста­тья. Ко­неч­но же сей­час про­блем в из­ме­ре­нии вре­ме­ни в C++ нет.
Це­лый час наблю­дал со­дер­жа­ние ин­тер­нет, и к сво­е­му вос­тор­гу об­на­ру­жил важ­ный сайт. Посмот­ри­те: сто­и­мость ро­дов в США. Для нас этот веб-сайт явил­ся весь­ма важ­ным. Успе­хов всем!
Hello!
Не­де­лю на­зад по­ста­вил се­бе Вен­ти­ля­то­ры под­по­ра УВОП но по­ло­жи­тель­ный эф­фект за­ме­тен сра­зу. Ды­шит­ся со­всем по-дру­го­му. Рань­ше, по утрам, в зал не­воз­мож­но бы­ло зай­ти – силь­ный за­пах от апа­ра­ту­ры. При­хо­ди­лось сроч­но от­кры­вать ок­на, что­бы про­вет­рить­ся. Осо­бен­но за­мет­но осе­нью.
Зда­ро­ва, ко­ро­че при­коль­но, но мне и лю­бов­ни­це очень нра­вит­ся и я до­ба­вил в за­клад­ки: эро­ти­ка ви­део ко­рот­кое Ты то­же за­хо­ди, не стес­няй­ся чу­вак!
Hello!
Hello!
Се­год­ня утром про­смат­ри­вал со­дер­жи­мое се­ти, вдруг к сво­е­му вос­тор­гу от­крыл за­ме­ча­тель­ный ре­сурс. Это он: ко­фе­ма­ши­на Jura. Для ме­ня дан­ный сайт по­ка­зал­ся весь­ма не­пло­хим. Всем по­ка!
Hello!
Пол­ча­са изу­чал кон­тент ине­та, слу­чай­но к сво­е­му вос­тор­гу за­ме­тил по­учи­тель­ный веб­сайт. Вот: http://vk.com/kak_vybrat_kofemashinu — ко­фе­вар­ка Moulinex. Для нас дан­ный сайт явил­ся весь­ма по­лез­ным. Успе­хов всем!
Мно­го­ува­жае­мые кли­ен­ты ком­па­нии ООО «ВАН»! Про­сим при­нять к све­де­нию дан­ную ин­фор­ма­цию. Фир­ма “ВАН” Санкт Пе­тер­бург, на про­тя­же­нии про­дол­жи­тель­но­го вре­ме­ни мо­шен­ни­ки с це­лью на­жи­вы пуб­ли­ку­ют лже­от­зы­вы о на­шей фир­ме. Угро­жая, они обе­ща­ли раз­ру­шить на­шу ком­па­нию и ли­шить на­ших лю­би­мых кли­ен­тов. По­сле от­ка­за вы­пла­тить им день­ги, по­сы­па­лись от­вра­ти­тель­ные от­зы­вы на раз­лич­ных ре­сур­сах о на­шей ком­па­нии. Не верь­те мо­шен­ни­кам. Мы про­ве­рен­ная вре­ме­нем и кли­ен­та­ми ком­па­ния и под­ры­вать ва­ше до­ве­рие ни­ко­им об­ра­зом не со­би­ра­ем­ся. Не верь­те этим мо­шен­ни­кам. С ува­же­ни­ем, ди­рек­тор Но­ги­нов Алек­сей Вла­ди­ми­ро­вич.
А я поль­зо­ва­лась услу­га­ми га­дал­ки аж 2 ра­за. при­чем га­да­ли мне на пси­хо­лог та­ро­лог. не ска­жу чтоб на 100% сбы­лось, но про­цен­тов на 90 точ­но, осталь­ные 10% — жду по­ка ис­пол­нять­ся.
Сер­вис флу­да ема­ил
Рас­сы­лаю с де­ди­ков, са­мо­пис­ный бот.
Воз­мож­на ран­до­ми­за­ция тек­ста пись­ма и за­го­лов­ков
Хо­ро­ший ин­бокс (40-90:Wacko: все ин­ди­ви­ду­аль­но за­ви­сит от мы­ла .
Рас­сыл­ка как по ва­шей так и по на­шей ба­зе
Уда­ле­ние ва­шей ба­зы по­сле рас­сыл­ки. Це­ны по на­шим ба­зам: от 1 до 100к — (1к — $2)
от 200к — (1к — $1) да­е­те свое мы­ло. по­лу­ча­е­те тест флу­да
го­тов прой­ти про­вер­ку!
связь: jabber:tom55555@jabbim.cz (otr) обя­за­тель­но.
——————————————————-
Service of flood emait
I dispatch from dediks
Randomization of the text of the letter and headings is possible
Good ин­бокс (40-90:Wacko: everything individually depends on soap.
Mailing both on yours and on our base
Removal of your base after mailing. The prices on our bases: от 1 до 100к — (1к — $2)
от 200к — (1к — $1) you give the soap. you receive the test of flood
it is ready to undergo testing!
communication: jabber:tom55555@jabbim .cz (otr) is obligatory.
Hello!
Hello!
Этой но­чью осмат­ри­вал ма­те­ри­а­лы инет, и к сво­е­му вос­тор­гу об­на­ру­жил хо­ро­ший ре­сурс. Вот глянь­те: на­тяж­ные по­тол­ки в спаль­ню. Для мо­их близ­ких этот веб­сайт по­ка­зал­ся весь­ма не­пло­хим. Все­го наи­луч­ше­го!
Hello!
Great article post.Really thank you! Fantastic. adcgdcfdafdddefd
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Maintain the excellent job mate. This web blog publish shows how well you comprehend and know this subject.
Hello!
Hello!
Hello!
Hello!
Hello!
I have not checked in here for a while since I thought it was getting boring, but the last few posts are good quality so I guess I’ll add you back to my daily bloglist. You deserve it my friend
Appreciate you sharing, great blog post.Thanks Again. Really Cool.
Awesome article post.Thanks Again. Much obliged.
Hi there would you mind letting me know which webhost you’re utilizing? I’ve loaded your blog in 3 different web browsers and I must say this blog loads a lot quicker then most. Can you suggest a good web hosting provider at a honest price? Thanks a lot, I appreciate it!
Thanks a bunch for sharing this with all of us you actually realize what you’re talking approximately! Bookmarked. Kindly also visit my web site . We will have a hyperlink exchange arrangement among us!
Appreciate you sharing, great blog post.Thanks Again. Really Cool.
Hey esto es un gran poste. Puedo utilizar una porcin en ella en mi sitio? Por supuesto ligara a su sitio as que la gente podra leer el artculo completo si ella quiso a. Agradece cualquier manera.
What a video it is! In fact amazing and fastidious quality, please upload more video clips having such good quality. Thanks.
Very interesting topic, appreciate it for putting up.
whoah this blog is excellent i really like reading your articles. Stay up the good work! You already know, many persons are looking around for this info, you could help them greatly.
I do accept as true with all of the concepts you have offered in your post. They’re really convincing and will definitely work. Still, the posts are very brief for beginners. May you please extend them a little from next time? Thanks for the post.
I truly enjoy looking at on this web site , it contains superb blog posts. Heavierthanair flying machines are impossible. by Lord Kelvin.
Do you mind if I quote a few of your posts as long as I provide credit and sources back to your weblog? My blog is in the very same niche as yours and my users would truly benefit from a lot of the information you present here. Please let me know if this alright with you. Thank you!
Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point. You obviously know what youre talking about, why throw away your intelligence on just posting videos to your site when you could be giving us something enlightening to read?
Your goal is to breed all the different dragons available to you
Just wanna input on few general things, The website pattern is perfect, the subject material is real excellent. Believe those who are seeking the truth. Doubt those who find it. by Andre Gide.
Hey are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and set up my own. Do you require any coding knowledge to make your own blog? Any help would be really appreciated!
I like this post, enjoyed this one regards for posting. He removes the greatest ornament of friendship, who takes away from it respect. by Cicero.
Hello to all, how is everything, I think every one is getting more from this website, and your views are fastidious in support of new viewers.
I gotta preferred this web web page it appears very valuable quite advantageous
I’m really enjoying the design and layout of your website. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a designer to create your theme? Excellent work!
This will be a fantastic site, will you be interested in doing an interview regarding just how you designed it? If so email me!
Hi there! This is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us beneficial information to work on. You have done a marvellous job!
Keep working ,impressive job!
Very informative blog post.Really thank you! Keep writing.
This is why Facebook games are becoming more popular. The ease of use and dissemination of content, tagging
What’s up it’s me, I am also visiting this site daily, this website is actually pleasant and the visitors are really sharing fastidious thoughts.
Attractive section of content. I just stumbled upon your website and in accession capital to assert that I get in fact enjoyed account your blog posts. Any way Ill be subscribing to your feeds and even I achievement you access consistently rapidly.
hello!,I like your writing very a lot! proportion we keep in touch more approximately your article on AOL? I require a specialist on this area to unravel my problem. May be that’s you! Looking forward to look you.
I have not checked in here for a while since I thought it was getting boring, but the last few posts are good quality so I guess I’ll add you back to my daily bloglist. You deserve it my friend
I do agree with all the ideas you have introduced for your post. They are really convincing and can certainly work. Still, the posts are very brief for newbies. May you please extend them a bit from subsequent time? Thank you for the post.
In my friend’s web blogs they already have provided me on the website rolls, but mine usually is located at the bottom on the listing and does not selection when I place as it does for some individuals. Is this a placing that I have to difference or is this a choice they may have considered? .
butenafine solubility
Can you add a Blackberry template? This web page is tricky to read otherwise for those of us browsing with cell phones. Otherwise, in the event you can place a RSS link up, that would be good also.
Fckin amazing things here. Im very glad to see your post. Thanks a lot and i’m looking forward to contact you. Will you kindly drop me a mail?
Hello there, I discovered your website by the use of Google while looking for a related subject, your web site came up, it seems good. I have bookmarked it in my google bookmarks.
Fantastic beat ! I wish to apprentice while you amend your website, how can i subscribe for a blog web site? The account aided me a acceptable deal. I had been a little bit acquainted of this your broadcast offered bright clear concept
Magnificent beat ! I wish to apprentice even as you amend your site, how could i subscribe for a blog web site? The account helped me a acceptable deal. I were a little bit acquainted of this your broadcast offered bright transparent concept
I truly appreciate this post. I have been looking all over for this! Thank goodness I found it on Bing. You’ve made my day! Thanks again!
I need to input, like a bunch at the same time as I hadn’t the benefit of examining everything you had to declare, I couldnt rally round on the contrary elude draw your attention before long. The as if you needed an excellent grasp on the subject
Im thankful for the post. Great.
cheers for the actual article i’ve recently been on the lookout with regard to this kind of advice on the net for sum time proper now so numerous thanks
There is visibly a bunch to realize about this. I consider you made various good points in features also.
To paraphrase, how do you do a search for information sites that fit what I want to check out? Does any body have learned how to BROWSE through blogs and forums by content or anything that on blog writer? .
I would definitely not recommend these as ways to break the ice however.
This is one awesome blog post. Keep writing.
I like what you guys are up too. This kind of clever work and exposure!
Article Source a viral game app is not
mometasone spray over counter
If some one wants expert view concerning running a blog afterward i advise himher to pay a quick visit this
Thank you for the sensible critique. Me &amp my neighbor were just preparing to do a little research about this. We got a grab a book from our local library but I think I learned more from this post. I am very glad to see such excellent info being shared freely out there.
Wonderful blog! I found it while surfing around on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Thanks
with people like one to grant visibly all of that numerous populaces would am inflicted with sold for electronic ebook to create selected jumps in favor of their unique terminate, mainly right away
you have a terrific blog here! would you like to make some invite posts on my weblog?
Outstanding post, I conceive people should acquire a lot from this web blog its rattling user genial. So much superb info on here
I really appreciate this post. I’ve been looking all over for this! Thank goodness I found it on Bing. You’ve made my day! Thanks again!
Do you agree with my statement that this post is awesome?
Beneficial Location Hi gentleman the following transpire a number of web page link with the aim of represses information that will a person may possibly acquire positive yourselves. The Significance Verifying away from home.
I conceive you have remarked some very interesting points , regards for the post.
Thank you for every other informative blog. The place else may just I get that type of info written in such a perfect means? I’ve a project that I’m just now working on, and I have been at the glance out for such information.
I got what you intend, appreciate it for posting .Woh I am lucky to find this website through google. I was walking down the street wearing glasses when the prescription ran out. by Steven Wright.
If you are going for best contents like myself, just pay a quick visit this web page everyday since it offers feature contents, thanks
I simply couldn’t depart your web site prior to suggesting that I actually loved the usual info a person supply for your guests? Is gonna be again continuously in order to check up on new posts.
Dead written subject material, Really enjoyed studying.
hi and thanks for the actual blog post ive recently been searching regarding this specific advice online for sum hours these days as a result thanks
Thanks for another magnificent post. Where else may just anybody get that kind of info in such a perfect manner of writing? I have a presentation next week, and I’m at the look for such information.
I really enjoy the blog article.Really looking forward to read more. Fantastic.
I’m truly enjoying the design and layout of your blog. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a developer to create your theme? Outstanding work!
what are some really good and popular websites for blogging? ?? .
I gotta favorite this internet site it seems handy very useful
Thanks a bunch for sharing this with all of us you actually realize what you’re talking approximately! Bookmarked. Kindly also visit my web site . We will have a hyperlink exchange arrangement among us!
Link exchange is nothing else but it is just placing the other persons weblog link on your page at proper place and other person will also do similar in support of you.
Thanks for another wonderful article. Where else could anybody get that kind of information in such an ideal way of writing? I have a presentation next week, and I’m on the look for such information.
Only wanna tell that this is very useful , Thanks for taking your time to write this.
Today, I went to the beach front with my kids.
Just wanna remark on couple of general issues, The web site style is perfect, the subject matter is rattling excellent
Great, thanks for sharing this article. Really Cool.
I simply couldn’t depart your site prior to suggesting that I actually loved the standard info an individual supply for your guests? Is going to be back regularly in order to inspect new posts.
We’re a group of volunteers and opening a brand new scheme in our community. Your site offered us with useful information to paintings on. You’ve performed a formidable job and our entire group can be thankful to you.
It’s very straightforward to find out any topic on net as compared to textbooks, as I found this article at this site.
I keep listening to the news update lecture about receiving boundless online grant applications so I have been looking around for the top site to get one. Could you advise me please, where could i acquire some?
obviously like your website but you have to check the spelling on several of your posts. Several of them are rife with spelling problems and I find it very bothersome to tell the truth nevertheless Ill definitely come back again.
You’re so interesting! I don’t think I have read anything like this before. So wonderful to discover somebody with some unique thoughts on this subject matter. Seriously.. thank you for starting this up. This website is one thing that is needed on the internet, someone with a bit of originality!
Actually its referred to as Search engine optimization that when i search for this post I found this web page at the top of all web pages in search engine.
Muchos Gracias for your blog post.
I do trust all of the ideas you’ve presented in your post. They’re very convincing and can certainly work. Nonetheless, the posts are very short for beginners. May just you please lengthen them a bit from next time? Thanks for the post.
Really great info can be found on site.
Hey very nice web site!! Man.. Beautiful.. Wonderful.. I’ll bookmark your web site and take the feeds alsoKI am satisfied to seek out a lot of helpful information here in the publish, we want work out extra techniques in this regard, thank you for sharing
I do agree with all the ideas you have introduced for your post. They are really convincing and can certainly work. Still, the posts are very brief for newbies. May you please extend them a bit from subsequent time? Thank you for the post.
There are some attentiongrabbing points in time in this article but I dont know if I see all of them heart to heart. There may be some validity however I will take maintain opinion until I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as properly
Wonderful beat ! I wish to apprentice while you amend your web site, how can i subscribe for a blog site? The account aided me a acceptable deal. I had been tiny bit acquainted of this your broadcast offered bright clear idea
Howdy! Do you know if they make any plugins to protect against hackers? I’m kinda paranoid about losing everything I’ve worked hard on. Any recommendations?
This is one awesome blog post. Keep writing.
Farmville farms even include free gift that is
That is some inspirational stuff. Never knew that opinions could be this varied. Be certain to keep writing.
Merely a smiling visitor here to share the adore , btw outstanding style. Audacity, more audacity and always audacity. by Georges Jacques Danton.
Real nice design and great articles, nothing else we want
Just wanna remark on couple of general issues, The web site style is perfect, the subject matter is rattling excellent
I do agree with all the ideas you have introduced for your post. They are really convincing and can certainly work. Still, the posts are very brief for newbies. May you please extend them a bit from subsequent time? Thank you for the post.
It is also possible that Zynga’s chosen advertising network is to blame if we
coumadin valtrex interaction
What’s up Jackson, if you are a new internet user then you have to visit daily this web site and read the updated content at at this place.
obviously like your website however you need to check the spelling on several of your posts. Several of them are rife with spelling issues and I to find it very bothersome to tell the truth on the other hand I will definitely come again again.
I just ought to tell you which you have written an exceptional and distinctive post that I really enjoyed reading. Im fascinated by how nicely you laid out your material and presented your views. Thank you.
Wow! This could be one particular of the most useful blogs We’ve ever arrive across on this subject. Basically Wonderful. I’m also a specialist in this topic so I can understand your hard work.
I’m curious to uncover out what blog system youre employing? Im experiencing some small security troubles with my latest weblog and Id like to locate something more safeguarded. Do you’ve any recommendations?
Do you mind if I quote a few of your posts as long as I provide credit and sources back to your weblog? My blog is in the very same niche as yours and my users would truly benefit from a lot of the information you present here. Please let me know if this alright with you. Thank you!
What’s up it’s me, I am also visiting this site daily, this website is actually pleasant and the visitors are really sharing fastidious thoughts.
Some truly select blog posts on this web site , saved to fav.
My brother recommended I might like this website. He was totally right. This post truly made my day. You cann’t imagine simply how much time I had spent for this info! Thanks!
Pretty great post. I just stumbled upon your blog and wanted
Great website! I am loving it!! Will be back later to read some more. I am taking your feeds also
free cell phone number lookup by name You can certainly see your
Farmville farms even include free gift that is especially designed for the neighbors on their farm visit.
Excellent blog here! Also your web site loads up very fast! What web host are you using? Can I get your affiliate link to your host? I wish my website loaded up as quickly as yours lol
Mudbox is a software for 3D sculpting and painting which is developed by Autodesk.
Thanks for this article. I’d also like to express that it can often be hard if you are in school and simply starting out to initiate a long credit standing. There are many students who are just trying to endure and have an extended or favourable credit history are often a difficult matter to have.
Hello to all, the contents existing at this site are in fact remarkable for people knowledge, well, keep up the nice work fellows.
This actually answered my drawback, thank you!
I really enjoy reading on this website, it holds great articles. Don’t put too fine a point to your wit for fear it should get blunted. by Miguel de Cervantes.
I just couldn’t go away your web site before suggesting that I really enjoyed the usual information an individual provide on your visitors? Is gonna be again continuously in order to check up on new posts
hello!,I like your writing so much! share we keep up a correspondence extra about your article on AOL? I require an expert on this space to resolve my problem. May be that is you! Looking ahead to look you.
Hello! Do you use Twitter? I’d like to follow you if that would be okay. I’m undoubtedly enjoying your blog and look forward to new posts.
I am really impressed with your writing skills as well as with the layout on your weblog. Is this a paid theme or did you modify it yourself? Anyway keep up the excellent quality writing, its rare to see a great blog like this one nowadays
I discovered your blog web site website on the search engines and check several of your early posts. Always sustain up the very excellent operate. I lately additional increase Rss to my MSN News Reader. Looking for toward reading much far more on your part later on!
Right now it looks like WordPress is the top blogging platform available right now. from what I’ve read Is that what you’re using on your blog?
Once I initially commented I clicked the Notify me when new feedback are added checkbox and now each time a remark is added I get four emails with the same comment. Is there any way you possibly can remove me from that service? Thanks!
cheers for the actual article i’ve recently been on the lookout with regard to this kind of advice on the net for sum time proper now so numerous thanks
Great website! I am loving it!! Will be back later to read some more. I am taking your feeds also
You must indulge in a contest for among the greatest blogs over the internet. Ill suggest this web website!
Your goal is to breed all the different dragons
I all the time used to read paragraph in news papers but now as I am a user of web thus from now I am using net for posts, thanks to web.
A big thank you for your article.Really thank you! Cool.
I think this is one of the most important info for me. And i am glad reading your article. But wanna remark on few general things, The web site style is ideal, the articles is really excellent D. Good job, cheers
Hi to all, how is everything, I think every one is getting more from this site, and your views
I like this post, enjoyed this one thankyou for posting .
Spot on with this writeup, I actually believe this website needs a great deal more attention. Ill probably be returning to read through more, thanks for the info!
Totally pent subject matter, appreciate it for selective information.
mont blanc pens
Well I really enjoyed reading it. This information procured by you is very practical for correct planning.
Hey, thanks for the post.Really thank you! Really Cool.
Hi, yup this post is truly fastidious and I have learned lot of things from it
I really like your blog.. very nice colors &amp theme. Did you make this website yourself or did you hire someone to do it for you? Plz respond as I’m looking to construct my own blog and would like to know where u got this from. thank you
I am not sure where you are getting your info, but great topic. I needs to spend some time learning much more or understanding more. Thanks for fantastic information I was looking for this info for my mission.
Hello to every one, its truly a fastidious for me to visit this site, it contains helpful Information.
Hello there, I discovered your website by the use of Google while looking for a related subject, your web site came up, it seems good. I have bookmarked it in my google bookmarks.
Wow, fantastic blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your web site is wonderful, let alone the content!
Wonderful blog! I found it while surfing around on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Thanks
I am so grateful for your blog article.Really thank you! Fantastic.
You are a really persuasive writer. I can see this in your writeup. You’ve a way of writing compelling info that sparks significantly interest.
I’m glad that it turned out so effectively and I hope it will continue in the future because it is so worthwhile and meaningful to the community.
I am no longer sure the place you’re getting your info, but great topic. I needs to spend a while studying much more or understanding more. Thanks for wonderful info I was on the lookout for this info for my mission.
Hmm it looks like your site ate my first comment it was extremely
Hi, everything is going well here and ofcourse every one is sharing information, that’s really fine, keep up writing.
I like this site its a master peace ! Glad I observed this on google. The definition of a beautiful woman is one who loves me. by Sloan Wilson.
Its actually a nice and helpful piece of information. Im glad that you shared this useful information with us. Please keep us up to date like this. Thanks for sharing.
I like what you guys are up too. Such clever work and reporting! Carry on the excellent works guys I have incorporated you guys to my blogroll. I think it will improve the value of my website
I like the helpful information you provide in your articles. Ill bookmark your weblog and check again here regularly. I’m quite certain I will learn plenty of new stuff right here! Good luck for the next!
I truly appreciate this article.Really thank you! Fantastic.
Good day! I know this is kind of off topic but I was wondering if you knew where I could find a captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having problems finding one? Thanks a lot!
Hi there, just became aware of your blog through Google, and found that it is really informative. Im going to watch out for brussels. Ill be grateful if you continue this in future. Lots of people will be benefited from your writing. Cheers!
Heya im for the first time here. I found this board and I find It really useful &amp it helped me out much. I hope to give something back and help others like you aided me.
Wow, fantastic blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your web site is wonderful, let alone the content!
Wonderful blog! I found it while surfing around on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Appreciate it
We’re a group of volunteers and starting a new scheme in our community.
you have a terrific blog here! would you like to make some invite posts on my weblog?
How To Buy Cheap Generic Ceclor 500mg
I gotta favorite this internet site it seems handy very useful
I keep listening to the news update lecture about receiving boundless online grant applications so I have been looking around for the top site to get one. Could you advise me please, where could i acquire some?
Howdy would you mind sharing which blog platform you’re working
Your weblog is 1 of a kind, i really like the way you organize the topics.
I’m pleased that I seen this website, precisely the proper information that I was trying to find!
Fckin amazing things here. Im very glad to see your post. Thanks a lot and i’m looking forward to contact you. Will you kindly drop me a mail?
In My Bambino site you can find sso many interesting aspefts
I’m curious to uncover out what blog system youre employing? Im experiencing some small security troubles with my latest weblog and Id like to locate something more safeguarded. Do you’ve any recommendations?
nasa, , harold hill
Very well written article. It will be helpful to anyone who usess it, as well as yours truly
Hey very cool blog!! Guy.. Beautiful.. Wonderful.. I will bookmark your website and take the feeds additionallyKI am satisfied to search out numerous useful information right here in the publish, we want develop more techniques on this regard, thank you for sharing
Very good blog post.Really thank you! Fantastic.
I got this website from my friend who told me concerning this web site and at the moment this time I am visiting this web page and reading very informative content here.
Somebody necessarily lend a hand to make significantly posts I might state. This is the very first time I frequented your website page and thus far? I surprised with the analysis you made to make this actual publish incredible. Magnificent job!
Article Source a viral game app is not that much
Heya im for the first time here. I found this board and I find It really useful &amp it helped me out much. I hope to give something back and help others like you aided me.
Good post. I study something more challenging on completely different blogs everyday. It is going to all the time be stimulating to learn content material from different writers and practice somewhat one thing from their store. I
Great article post.Really thank you! Fantastic.
tretinoin chemotherapy
I value the post.Thanks Again. Awesome.
I’ve long suggested that people seeking to gett a good understanding of this speciific topic spread their research acrooss many blogs
Aw, this was a very nice post. In thought I want to put in writing like this moreover taking time and actual effort to make an excellent article but what can I say I procrastinate alot and not at all seem to get something done.
with people like one to grant visibly all of that numerous populaces would am inflicted with sold for electronic ebook to create selected jumps in favor of their unique terminate, mainly right away
Thank you for some other informative website. Where else may just I am getting that kind of info written in such an ideal means? I’ve a venture that I am just now working on, and I have been on the glance out for such info.
Really great info can be found on site.
Hi, I desire to subscribe for this web site to obtain latest updates, therefore where can i do it please assist.
Hello. excellent job. I did not expect this. This is a great story. Thanks!
You are my inspiration, I possess few web logs and rarely run out from to brand.
Article Source a viral game app is not that much difficult.
Merely a smiling visitor here to share the love , btw outstanding style. Audacity, a lot more audacity and always audacity. by Georges Jacques Danton.
I like what you guys are up too. This kind of clever work and exposure!
Awesome article post.Thanks Again. Much obliged.
Spot on with this writeup, I actually believe this website needs a great deal more attention. Ill probably be returning to read through more, thanks for the info!
what are some superior and in demand websites for blogs? ?? .
Specifically where web can a certified psyciatrist submit content or sites for them to become fashionable?
This is really interesting, You’re a very skilled blogger. I have joined your feed and look forward to seeking more of your magnificent post. Also, I have shared your web site in my social networks!
I am not sure where you are getting your info, but great topic. I needs to spend some time learning much more or understanding more. Thanks for fantastic information I was looking for this info for my mission.
Hello, always i used to check blog posts here in the early hours in the daylight,
Howdy would you mind sharing which blog platform you’re working
I do agree with all the ideas you have introduced for your post. They are really convincing and can certainly work. Still, the posts are very brief for newbies. May you please extend them a bit from subsequent time? Thank you for the post.
Hi there would you mind letting me know which webhost you’re utilizing? I’ve loaded your blog in 3 different web browsers and I must say this blog loads a lot quicker then most. Can you suggest a good web hosting provider at a honest price? Thanks a lot, I appreciate it!
Hey there! Do you know if they make any plugins to
«…Бо­лее то­го, вы­зов GetPerformanceFrequency() осу­ществ­ля­ет­ся один раз в са­мом на­ча­ле ра­бо­ты про­грам­мы, а за­тем по­лу­чен­ное зна­че­ние ис­поль­зу­ет­ся все­ми со­здан­ны­ми тай­ме­ра­ми….»
на­шёл чем гор­дить­ся…:)))
От­зыв № 7
Ав­тор: Вла­ди­мир Ша­бу­нин. Да­та: 19-го де­каб­ря 2012 г. Вре­мя: 16:18.
Ва­ше сред­ство ока­за­лось един­ствен­ным из ре­аль­но до­ступ­ных и ра­бо­таю­щих, ко­то­рое поз­во­ли­ло тай­ми­ро­вать вре­мя вы­пол­не­ния те­сти­ру­е­мо­го ко­да с нуж­ной точ­но­стью и ста­биль­но. Боль­шин­ство пред­ла­гае­мых в Се­ти при­ме­ров ра­бо­та­ют гру­бо и ре­зуль­тат силь­но за­ви­сит от со­пут­ствую­щей за­груз­ки си­сте­мы.
Вы­ра­жаю бла­го­дар­ность от се­бя лич­но и не­боль­шо­го ис­сле­до­ватель­ско­го кол­лек­ти­ва, ко­то­ро­му по­тре­бо­ва­лось вы­пол­нить оп­ти­ми­за­цию ко­да. Уда­чи Вам!
и этот ту­да же…)))
по­то­му и ни­че­го и «не пры­га­ет» в по­ка­за­ни­ях счёт­чи­ка — ведь он, на­ив­ный (и вы тут, вме­сте с ним) — ду­ма­ет, что он не из­ме­ня­ет­ся)))
А меж тем, уже сколь­ко лет есть тех­но­ло­гии у про­цес­со­ров, ко­то­рые поз­во­ля­ют ре­гу­ли­ро­вать им свою ча­сто­ту в це­лях:
энер­го­по­треб­ле­ния,
а так­же в за­ви­си­мо­сти от при­бли­же­нии к кри­ти­че­ской тем­пе­ра­ту­ре.
ка­кой смысл чи­тать тут лек­ции про об­ра­бот­ке изоб­ра­же­ний и бо­лее то­го — о па­ра­л­ле­лиз­ме, ес­ли ба­наль­ных ве­щей — не суж­де­но по­нять?…
Howdy! Would you mind if I share your weblog with my twitter group? Theres lots of people that I think would truly enjoy your content material. Please let me know. Thanks
I am truly thankful to the holder of this website who has shared this fantastic article at here.
I do agree with all the ideas you have introduced for your post. They are really convincing and can certainly work. Still, the posts are very brief for newbies. May you please extend them a bit from subsequent time? Thank you for the post.
This web site really has all the information and facts I wanted about this subject and didn’t know who to ask.
Wonderful site. Plenty of useful info here. I’m sending it to a few pals ans additionally sharing in delicious. And naturally, thank you to your sweat!

Оставить отзыв

Жёлтые поля обязательны к заполнению

   

Можете использовать теги <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang=""> <div class=""> <span class=""> <br>