Я правильно тестирую производительность? Запоминаемое хранилище VS обычное ОЗУ в Node.js - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь сравнить производительность READ библиотеки с именем memored: https://github.com/PaquitoSoft/memored с обычными старыми переменными RAM в Node.js

Я ожидал, что данные, сохраненные с memored, будут как минимумС точки зрения чтения данных немного медленнее, чем память RAM, но результаты показывают обратное.(Читайте ниже для моих выводов)

Я запускаю это в терминале кода Visual Studio на Windows 10. Все это делается в Typescript, который позже компилируется в JS, а затем запускается с "узлом"команда.

Это мой тест ОЗУ

var normalRAM = {
    firstname: 'qwe',
    lastname: 'fsa'
}

var s = process.hrtime(); //start timer
console.log(normalRAM); // read from ram
var e = process.hrtime(s) //stop timer

console.log("end0", e[0]);  //results in seconds
console.log("end1", e[1]);  //results in nanoseconds

Это мой запомненный тест

// clustering needed to show memored in action
if (cluster.isMaster)
{
    // Fork workers.
    for (let i = 0; i < 1; i++)
    {
        cluster.fork();
    }
}
else
{
    var han = {
        firstname: 'Han',
        lastname: 'Solo'
    }

    // Store and read
    memored.store('character1', han, function ()
    {
        console.log('Value stored!');
        var hrstart = process.hrtime(); // start timer
        memored.read('character1', function (err: any, value: any)
        {
            var hrend = process.hrtime(hrstart) // stop timer
            console.log('Read value:', value);

            console.log("hrend0", hrend[0]); //results in seconds
            console.log("hrend1", hrend[1]); //results in nanoseconds

        });
    });
}

Результаты:

The RAM read speeds are around 6500000 nanoseconds.

The Memored read speeds are around 1000000 nanoseconds

Ятестировать скорости здесь неправильно?Каковы недостатки в моей методологии?Возможно, мое первоначальное предположение неверно?

1 Ответ

0 голосов
/ 09 июня 2019

Я переключил следующие 2 строки:

var hrend = process.hrtime(hrstart) // stop timer
console.log('Read value:', value);

На это:

console.log('Read value:', value);
var hrend = process.hrtime(hrstart) // stop timer

Что имеет больше смысла в реальном сценарии, поскольку мне нужно было бы читать его из ОЗУ вот такв любом случае после того, как данные возвращены.Ответ на мой вопрос, вероятно, таков: «ваш запомненный тест выполняется быстрее, потому что он проверяется только тогда, когда данные возвращаются для моего обратного вызова, а не когда я фактически читаю его из переменной« значение »».

Я собирался удалить свой вопрос до того, как кто-нибудь прочтет его (это вообще возможно?), Но я оставлю его здесь на случай, если кто-то совершит глупую ошибку, подобную этой: D.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...