Skip to content

Instantly share code, notes, and snippets.

View rkaw92's full-sized avatar

Robert Kawecki rkaw92

  • rkaw software
  • Warsaw
View GitHub Profile
@rkaw92
rkaw92 / main.js
Created April 3, 2022 12:13
Node.js worker_threads with MessageChannel clogging up
const { MessageChannel, Worker } = require('worker_threads');
const worker = new Worker('./worker.js');
const benchmarkChannel = new MessageChannel();
worker.postMessage({ port: benchmarkChannel.port2 }, [ benchmarkChannel.port2 ]);
(function run() {
for (let i = 0; i < 1000000; i += 1) {
benchmarkChannel.port1.postMessage('hello world');
}
@rkaw92
rkaw92 / iterator.js
Created March 3, 2021 00:27
Node benchmark: plain ReadableStream vs. asyncIterator
const { Readable } = require('stream');
const ITEM_COUNT = 10 * 1000 * 1000;
class EventStream extends Readable {
constructor(count) {
super({ objectMode: true });
this.remainingCount = count;
}
@rkaw92
rkaw92 / exceptions.js
Created July 15, 2020 14:33
You understand JS exceptions... or do you?
function try1() {
try {
return 1;
} catch (error) {
} finally {
console.log('try1(): in finally{}');
}
}
@rkaw92
rkaw92 / index.html
Last active February 13, 2020 09:02
Webpack config for bundling a dependency
<!DOCTYPE html>
<html>
<head>
<title>Library test</title>
</head>
<body>
<p id="datetime"></p>
<script src="dist/main.js"></script>
<script>
function displayTime() {
'use strict';
function findPairs(inputs) {
const unpairedNumbers = new Set();
const pairs = [];
for (let element of inputs) {
if (unpairedNumbers.has(element)) {
pairs.push(element);
unpairedNumbers.delete(element);
} else {
@rkaw92
rkaw92 / pg-basic.js
Last active March 20, 2019 14:36
Node.js pg first query takes longer than subsequent queries
'use strict';
const pg = require('pg');
const PG_URL = process.env.PG_URL || 'postgres://postgres:postgres@127.0.0.1/postgres';
const ITERATIONS = Number(process.env.ITERATIONS || 10);
const VARIANT = Number(process.env.VARIANT || 0);
async function benchmarkPg() {
const client = new pg.Client({
connectionString: PG_URL
@rkaw92
rkaw92 / fake-http.js
Created July 18, 2018 09:36
http monkey patching in Node.js 10
'use strict';
const http = require('http');
http.request = function fakeRequest() {
console.log('faked!');
};
@rkaw92
rkaw92 / index.html
Created March 28, 2018 10:01
Cross-window data passing in JS
<!DOCTYPE html PUBLIC>
<html>
<head>
<title>Root window</title>
</head>
<body>
<p id="greeter">Nothing here yet...</p>
<button id="opener">Open a new window</button>
<script>
window.greet = function greet() {
'use strict';
const Big = require('big.js');
const EventEmitter = require('events');
/**
* An EventEmitter that emits subsequent approximations of number Pi.
* @extends external:EventEmitter
*/
class PiEmitter extends EventEmitter {
@rkaw92
rkaw92 / annotated-output.txt
Created November 14, 2017 20:48
Stuck Promises from node-postgres/Client#query
* firing query
* query result: 1
* firing query
* query result: 1
* firing query
* query result: 1
* firing query
* query result: 1
* firing query
* query result: 1