By default, running npm install
will do a security audit of your installed packages. That audit is fast but it still takes a bit of time. To disable it you can either add --no-audit
or you can...:
❯ cat .npmrc
audit=false
But how much does the audit take when running npm install
? To find out, I wrote this:
import random
import statistics
import subprocess
import time
from collections import defaultdict
def f1():
subprocess.check_output("npm install".split())
def f2():
subprocess.check_output("npm install --no-audit".split())
functions = f1, f2
times = defaultdict(list)
for i in range(25):
f = random.choice(functions)
t0 = time.time()
f()
t1 = time.time()
times[f.__name__].append(t1 - t0)
time.sleep(5)
for f_name in sorted(times.keys()):
print(
f_name,
f"mean: {statistics.mean(times[f_name]):.1f}s".ljust(10),
f"median: {statistics.median(times[f_name]):.1f}s",
)
Note how it runs a lot of times in case there are network hiccups and it sleeps between each run just to spread out the experiment over a longer period of time. And the results are:
f1 mean: 2.81s median: 2.57s f2 mean: 2.25s median: 2.21s
Going by the median time, the --no-audit
makes the npm install
16% faster. If you look at the mean time dropping the --no-audit
can make it 25% faster.
Comments
I didn't know about the audit=false option in .npmrc, it's good to know, thanks =)