Similar solutions with very different execution times. What's the reason? Why solution #1 is too slow?
Hint: access to
.length
property and to variables is not an issue.
Based on a real case in CSSTree
N | Solution #1 | Solution #2 |
---|
Similar solutions with very different execution times. What's the reason? Why solution #1 is too slow?
Hint: access to
.length
property and to variables is not an issue.
Based on a real case in CSSTree
N | Solution #1 | Solution #2 |
---|
// | |
// Case 1 | |
// | |
var a = []; | |
var t = performance.now(); | |
for (var i = 0; i < 10000; i++) | |
a.push(new Promise(function(){})); | |
// Unique with use object | |
function uniqueObject(array) { | |
var hash = Object.create(null); | |
var result = []; | |
var value; | |
for (var i = 0; i < array.length; i++) { | |
value = array[i]; | |
if (!hash[value]) { | |
hash[value] = true; |
var events = require('basis.event'); | |
var resolveValue = require('basis.data').resolveValue; | |
module.exports = function createBlockClass(BaseClass, ext) { | |
return BaseClass.subclass(ext, { | |
visible: true, | |
visibleRA_: null, | |
emit_visibleChanged: events.create('visibleChanged'), | |
// value could be a function or binding-bridge instance; any other converts to bool | |
setVisible: function(value) { |
var csso = require('csso'); | |
function splitByScope(css) { | |
var scopes = {}; | |
csso.walk(csso.parse(css), function(node) { | |
if (node.type === 'Class') { | |
var className = node.name; | |
var scopeId = className.replace(/^([^_]+)_.+/, '$1'); // scopeId is block name |
// react 0.14-rc1 | |
var Zoo = React.createClass({ | |
render: function() { | |
return <div>Giraffe name: <input ref="giraffe" /></div>; | |
}, | |
showName: function() { | |
// Previously: var input = this.refs.giraffe.getDOMNode(); | |
var input = this.refs.giraffe; | |
alert(input.value); | |
} |
basis.require('basis.event'); | |
basis.require('basis.data'); | |
var datasetComputeFunctions = {}; | |
basis.data.AbstractDataset.extend({ | |
/** | |
* @param {string|Array.<string>=} events |
basis.require('basis.data.value'); | |
basis.require('basis.dom'); | |
var DOM = basis.dom; | |
var BindValue = basis.data.value.BindValue; | |
var DOM_INSERT_HANDLER = function(value){ | |
DOM.insert(DOM.clear(this), value); | |
}; |
var ids = String( | |
this.req.param('id') || | |
this.req.param('ids') | |
).match(/(\d+)/g); |
basis.require('basis.entity'); | |
basis.require('basis.data.index'); | |
// create type with single field, that used for EntitySet | |
var Item = basis.entity.createType('SomeType', { | |
value: Number | |
}); | |
// main Entity type | |
var DemoType = basis.entity.createType('DemoType', { |