Wywołanie działa rekurencyjnie w regularnych odstępach czasu

Zastanawiałem się, jaki jest lepszy sposób (pod względem wzrostu stosu i wydajności) na rekurencyjne wywoływanie funkcji w regularnych odstępach czasu? Na przykład, powiedzmy, że chcę czytać zawartość pliku co 200 ms. Mam następujące dwie metody i zastanawiałem się, czy są inne?

Metoda 1: Używanie zwykłych ols setTimeout bez process.nextTick

var fs = require('fs');
(function loop() {
  // Print to time to indicate something is happening
  console.log(new Date().toString());

  // Read a 51MB file
  fs.readFile('./testfile', function (err, data) {
    if (err) console.log(err);
  });

  // Call the same function again
  setTimeout(function () {
    loop();
  }, 200);
})();

Metoda 2: Wywołanie process.nextTick wewnątrz setTimeout

var fs = require('fs');
(function loop() {
  // Print to time to indicate something is happening
  console.log(new Date().toString());

  // Read a 51MB file
  fs.readFile('./testfile', function (err, data) {
    if (err) console.log(err);
  });

  // Call the same function again
  setTimeout(function () {
    process.nextTick(function () {
      loop();
    });
  }, 200);
})();

Chcę wiedzieć, czy dodawanie process.nextTick wewnątrz setTimeout pomaga czy nie? Czy wywołanie funkcji wewnątrz process.nextTick zmniejszy zużycie stosu, czy nie?

questionAnswers(1)

yourAnswerToTheQuestion