classes vs objects

Benchmark created by Matthew on


Description

Which is faster—classes or pojos?

Setup

function C() {
    }
    
    function K() {
    }
    
    K.prototype.method0 = function() { alert(0); };
    K.prototype.method1 = function() { alert(1); };
    K.prototype.method2 = function() { alert(2); };
    K.prototype.method3 = function() { alert(3); };
    K.prototype.method4 = function() { alert(4); };
    K.prototype.method5 = function() { alert(5); };
    K.prototype.method6 = function() { alert(6); };
    K.prototype.method7 = function() { alert(7); };
    K.prototype.method8 = function() { alert(8); };
    K.prototype.method9 = function() { alert(9); };
    K.prototype.method10 = function() { alert(10); };
    K.prototype.method11 = function() { alert(11); };
    K.prototype.method12 = function() { alert(12); };
    K.prototype.method13 = function() { alert(13); };
    K.prototype.method14 = function() { alert(14); };
    K.prototype.method15 = function() { alert(15); };
    K.prototype.method16 = function() { alert(16); };
    K.prototype.method17 = function() { alert(17); };
    K.prototype.method18 = function() { alert(18); };
    K.prototype.method19 = function() { alert(19); };
    K.prototype.method20 = function() { alert(20); };
    K.prototype.method21 = function() { alert(21); };
    K.prototype.method22 = function() { alert(22); };
    K.prototype.method23 = function() { alert(23); };
    K.prototype.method24 = function() { alert(24); };
    K.prototype.method25 = function() { alert(25); };
    K.prototype.method26 = function() { alert(26); };
    K.prototype.method27 = function() { alert(27); };
    K.prototype.method28 = function() { alert(28); };
    K.prototype.method29 = function() { alert(29); };
    K.prototype.method30 = function() { alert(30); };
    K.prototype.method31 = function() { alert(31); };
    K.prototype.method32 = function() { alert(32); };
    K.prototype.method33 = function() { alert(33); };
    K.prototype.method34 = function() { alert(34); };
    K.prototype.method35 = function() { alert(35); };
    K.prototype.method36 = function() { alert(36); };
    K.prototype.method37 = function() { alert(37); };
    K.prototype.method38 = function() { alert(38); };
    K.prototype.method39 = function() { alert(39); };
    K.prototype.method40 = function() { alert(40); };
    K.prototype.method41 = function() { alert(41); };
    K.prototype.method42 = function() { alert(42); };
    K.prototype.method43 = function() { alert(43); };
    K.prototype.method44 = function() { alert(44); };
    K.prototype.method45 = function() { alert(45); };
    K.prototype.method46 = function() { alert(46); };
    K.prototype.method47 = function() { alert(47); };
    K.prototype.method48 = function() { alert(48); };
    K.prototype.method49 = function() { alert(49); };
    K.prototype.method50 = function() { alert(50); };
    K.prototype.method51 = function() { alert(51); };
    K.prototype.method52 = function() { alert(52); };
    K.prototype.method53 = function() { alert(53); };
    K.prototype.method54 = function() { alert(54); };
    K.prototype.method55 = function() { alert(55); };
    K.prototype.method56 = function() { alert(56); };
    K.prototype.method57 = function() { alert(57); };
    K.prototype.method58 = function() { alert(58); };
    K.prototype.method59 = function() { alert(59); };
    K.prototype.method60 = function() { alert(60); };
    K.prototype.method61 = function() { alert(61); };
    K.prototype.method62 = function() { alert(62); };
    K.prototype.method63 = function() { alert(63); };
    K.prototype.method64 = function() { alert(64); };
    K.prototype.method65 = function() { alert(65); };
    K.prototype.method66 = function() { alert(66); };
    K.prototype.method67 = function() { alert(67); };
    K.prototype.method68 = function() { alert(68); };
    K.prototype.method69 = function() { alert(69); };
    K.prototype.method70 = function() { alert(70); };
    K.prototype.method71 = function() { alert(71); };
    K.prototype.method72 = function() { alert(72); };
    K.prototype.method73 = function() { alert(73); };
    K.prototype.method74 = function() { alert(74); };
    K.prototype.method75 = function() { alert(75); };
    K.prototype.method76 = function() { alert(76); };
    K.prototype.method77 = function() { alert(77); };
    K.prototype.method78 = function() { alert(78); };
    K.prototype.method79 = function() { alert(79); };
    K.prototype.method80 = function() { alert(80); };
    K.prototype.method81 = function() { alert(81); };
    K.prototype.method82 = function() { alert(82); };
    K.prototype.method83 = function() { alert(83); };
    K.prototype.method84 = function() { alert(84); };
    K.prototype.method85 = function() { alert(85); };
    K.prototype.method86 = function() { alert(86); };
    K.prototype.method87 = function() { alert(87); };
    K.prototype.method88 = function() { alert(88); };
    K.prototype.method89 = function() { alert(89); };
    K.prototype.method90 = function() { alert(90); };
    K.prototype.method91 = function() { alert(91); };
    K.prototype.method92 = function() { alert(92); };
    K.prototype.method93 = function() { alert(93); };
    K.prototype.method94 = function() { alert(94); };
    K.prototype.method95 = function() { alert(95); };
    K.prototype.method96 = function() { alert(96); };
    K.prototype.method97 = function() { alert(97); };
    K.prototype.method98 = function() { alert(98); };
    K.prototype.method99 = function() { alert(99); };

Test runner

Ready to run.

Testing in
TestOps/sec
Class
var obj = new C();
ready
Class with many methods
var obj = new K();
ready
POJO
var obj = {};
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Matthew on