Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Monomorphic vs Megamorphic (both factory)
(version: 1)
Comparing performance of:
Megamorphic vs Monomorphic
Created:
3 years ago
by:
Registered User
Jump to the latest result
Script Preparation code:
function getFactory() { return function() { this.a; }; } function getProp0() { this.a; } const getProp1 = getFactory(); const getProp2 = getFactory(); const getProp3 = getFactory(); const getProp4 = getFactory(); const getProp5 = getFactory(); const megaData = [{ getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp0, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp1, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp1, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp1, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp1, v: "", w: "", x: "", y: "", z: "", a: "" }, ]; function getMega() { return megaData; } const monoData = [{ getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, { getProp: getProp1, b: "", c: "", d: "", e: "", f: "", a: "" }, { getProp: getProp2, g: "", h: "", i: "", j: "", k: "", a: "" }, { getProp: getProp3, l: "", m: "", n: "", o: "", p: "", a: "" }, { getProp: getProp4, q: "", r: "", s: "", t: "", u: "", a: "" }, { getProp: getProp5, v: "", w: "", x: "", y: "", z: "", a: "" }, ]; function getMono() { return monoData; } function test(data) { for (const obj of data) { obj.getProp(); } }
Tests:
Megamorphic
test(getMega());
Monomorphic
test(getMono());
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
Megamorphic
Monomorphic
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):
I'll answer the question based on the provided code snippets and benchmark data. The code snippet shows an array of objects, each with a `getProp` function as its property. The `getProp` functions are assigned different values: `getProp1`, `getProp2`, `getProp3`, and `getProp4`. The `test` function iterates over the array of objects and calls their respective `getProp` functions. The benchmark data shows two test cases: "Megamorphic" and "Monomorphic". The execution times for these tests are 591642.875 executions per second and 589370.9375 executions per second, respectively. Based on this information, I'll make an educated guess: The `getProp` functions seem to be designed to retrieve specific data from the objects. The `Megamorphic` test case likely checks the performance of these functions when called in a more complex scenario (i.e., iterating over multiple objects), while the `Monomorphic` test case checks the performance in a simpler scenario. Without further information, I can only speculate about the exact nature of the `getProp` functions and their implementation. However, based on the provided data, it appears that: 1. The `getProp` functions are designed to retrieve specific data from objects. 2. The `test` function iterates over an array of objects and calls their respective `getProp` functions. 3. The benchmark data shows performance differences between "Megamorphic" and "Monomorphic" test cases. If you provide more context or information about the `getProp` functions, I may be able to offer a more precise answer.
Related benchmarks:
if else vs runtime polymorphic
Monomorphic vs Typed Monomorphic vs Empty Object prop assignment
Mono- vs Poly- vs Megamorphic v1
object creation+method lookup: new, object.create, literal+proto
Comments
Confirm delete:
Do you really want to delete benchmark?