Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Rule Benchmark (3)
(version: 0)
Comparing performance of:
VERBOSE (1) vs VERBOSE (2) vs INFO (1) vs INFO (2) vs WARN (1) vs WARN (2) vs ERROR (1) vs ERROR (2) vs SILENT (1) vs SILENT (2)
Created:
3 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
var namespaces = []; for (var i = 0; i < 10000; i++) { let predicate = Math.random(); let level = ''; if (predicate < 0.25) { level = ':error'; } else if (predicate < 0.5) { level = ':warn'; } else if (predicate < 0.75) { level = ':verbose'; } namespaces.push(`LH:${Math.floor(Math.random() * 1000)}${level}`); }
Tests:
VERBOSE (1)
const level = 'LH:*'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); const enabled_ = (rules.enabled?.some(testRule) ?? true) && !rules.disabled?.some(testRule); }
VERBOSE (2)
const level = 'LH:*'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); let enabled_ = false; if (rules.enabled?.some(testRule)) { enabled_ = !rules.disabled?.some(testRule); } }
INFO (1)
const level = 'LH:*, -LH:*:verbose'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); const enabled_ = (rules.enabled?.some(testRule) ?? true) && !rules.disabled?.some(testRule); }
INFO (2)
const level = 'LH:*, -LH:*:verbose'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); let enabled_ = false; if (rules.enabled?.some(testRule)) { enabled_ = !rules.disabled?.some(testRule); } }
WARN (1)
const level = '-LH:*, LH:*:warn, LH:*:error'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); const enabled_ = (rules.enabled?.some(testRule) ?? true) && !rules.disabled?.some(testRule); }
WARN (2)
const level = '-LH:*, LH:*:warn, LH:*:error'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); let enabled_ = false; if (rules.enabled?.some(testRule)) { enabled_ = !rules.disabled?.some(testRule); } }
ERROR (1)
const level = '-LH:*, LH:*:error'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); const enabled_ = (rules.enabled?.some(testRule) ?? true) && !rules.disabled?.some(testRule); }
ERROR (2)
const level = '-LH:*, LH:*:error'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); let enabled_ = false; if (rules.enabled?.some(testRule)) { enabled_ = !rules.disabled?.some(testRule); } }
SILENT (1)
const level = '-LH:*'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); const enabled_ = (rules.enabled?.some(testRule) ?? true) && !rules.disabled?.some(testRule); }
SILENT (2)
const level = '-LH:*'; const rules = level .replace(/\s/g, '') .replace(/\*/g, '.+') .split(',') .reduce((rules, namespace) => { if (!/^-?LH:/.test(namespace)) return rules; let key = 'enabled'; if ('-' === namespace[0]) { key = 'disabled'; namespace = namespace.slice(1); } const rule = new RegExp(`^${namespace}$`); const ruleGroup = rules[key] ?? []; return { ...rules, [key]: [...ruleGroup, rule] }; }, {}); for (const ns of namespaces) { const testRule = (rule) => rule.test(ns); let enabled_ = false; if (rules.enabled?.some(testRule)) { enabled_ = !rules.disabled?.some(testRule); } }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (10)
Previous results
Fork
Test case name
Result
VERBOSE (1)
VERBOSE (2)
INFO (1)
INFO (2)
WARN (1)
WARN (2)
ERROR (1)
ERROR (2)
SILENT (1)
SILENT (2)
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
It looks like you're providing a JSON string, but it's not formatted as a single object or an array of objects with clear keys and values. However, I'll try to help you out. From the information provided, it appears that this is a collection of UAParser2 test results, which are used for analyzing user agent strings. Here are some general observations: 1. There are 11 test results in total. 2. Each result has the following properties: * `RawUAString`: The raw user agent string. * `Browser`: The browser type (e.g., Chrome). * `DevicePlatform`: The device platform (e.g., Desktop). * `OperatingSystem`: The operating system (e.g., Windows). * `ExecutionsPerSecond`: The number of executions per second. * `TestName`: The test name (e.g., SILENT, VERBOSE, ERROR, INFO, WARN). Can you please provide more context or clarify what specific information you're trying to extract from these results?
Related benchmarks:
Math max
floor vs toPrecision
Comparing performance of Math.floor(x); vs Math.round(x); vs (0.5 + x) << 0;
Math.floor(N) vs (N | 0) vs parseInt(N)
tagName.toLowerCase() vs instanceof
Comments
Confirm delete:
Do you really want to delete benchmark?