A function for timing your JavaScript functions

by rsutton 28. May 2009 06:02

I’m doing some loading of data into a grid and I wanted to have a simple way of timing various method calls in JavaScript, so here is what I came up with.

    function timeIt(func) { 
        var start = (new Date()).getTime(); 
        var ret = func(); 
        var end = (new Date()).getTime(); 
        alert(end - start); 
        return ret; 
    } 
 

You can take code like this.

var json = parseJson(data); 
dataBindGrid('TheGrid', json);

 

And turn it into this.

var json = timeIt(function() { return parseJson(data); }); 
timeIt(function() { dataBindGrid('TheGrid', json); });

 

Notice that if you need a return value from the function you are timing you must place a return in the anonymous function that is passed in so that your variable is assigned.  In this case the variable being assigned is “json”.

Tags:

Development

Shutdown and Reboot in Windows from the Command Line

by rsutton 20. May 2009 05:19

Reboot Command

shutdown /r /t 0

Shutdown Command

shutdown /s /t 0

Tags:

Can’t access C$ share in Windows 7

by rsutton 15. May 2009 04:40

I kept trying to do the old \\mymachine\c$ to access the c drive of a machine in my network and it I couldn’t get it to work.  Now this machine was Windows 7 and ever since Vista file sharing has been really weird and in my opinion pretty messed up.  The solution of course was to DISABLE UAC.  That’s right.  If you disable User Account Control then this will work just fine.

Tags:

IT | Development

Remove wordpress search button

by rsutton 8. May 2009 23:57

After getting wordpress up and running I was sad to see that ugly search button next to my search widget, so here are some steps that I used to remove it and get a cool effect in the text box just like the theme samples.

  1. Open wordpress/wp-includes/widgets.php
  2. Search for the function wp_widget_search
  3. Find the line <input type="submit" value="<?php echo attribute_escape(__('Search')); ?>" /> (Second input tag in the div)
  4. Change type="submit" to type="hidden"
  5. (opt) Add a <br /> after the input tag so you have a space under your search box.
  6. (opt) Change the input tag right above the previous one to look like the one below to add the "To search,type and hit enter" effect. (First input tag in the div)

 

<input name="s" id="s" size="15" 
onblur="if (this.value == '') {this.value = 'To search, type and hit enter';}" 
onfocus="if (this.value == 'To search, type and hit enter') {this.value = '';}" 
value="To search, type and hit enter" type="text" />


That's it. Save that bad boy and you should be up and running and have a much cooler search bar.

Tags:

Development | IT

JavaScript Speed Test – Safari 4, Firefox 3, Firefox 3.5, Chrome, IE7 and IE 8

by rsutton 7. May 2009 10:55

I recently downloaded TaffyDB a neat little JavaScript database.  Included in the download were a couple of files containing unit tests as well as a speed test, so I decided to run these speeds tests in Firefox, Chrome and Internet Explorer.  Here are my results.

 

Internet Explorer 7 (6th Place) 1983.8ms

Create and Fill Taffy, 69 milliseconds
Create and Fill Taffy, 65 milliseconds
Create and Fill Taffy, 61 milliseconds
Create and Fill Taffy, 62 milliseconds
Create and Fill Taffy, 62 milliseconds
Avg: 63.8 milliseconds

Do 80% record remove via lookup, 508 milliseconds
Do 80% record remove via lookup, 510 milliseconds
Do 80% record remove via lookup, 502 milliseconds
Do 80% record remove via lookup, 508 milliseconds
Do 80% record remove via lookup, 501 milliseconds
Avg: 505.8 milliseconds

Do a forEach Update, 260 milliseconds
Do a forEach Update, 254 milliseconds
Do a forEach Update, 256 milliseconds
Do a forEach Update, 262 milliseconds
Do a forEach Update, 258 milliseconds
Avg: 258 milliseconds

Find Every Record [1000], 448 milliseconds
Find Every Record [1000], 437 milliseconds
Find Every Record [1000], 430 milliseconds
Find Every Record [1000], 435 milliseconds
Find Every Record [1000], 428 milliseconds
Avg: 435.6 milliseconds

Find Record 900 [1], 26 milliseconds
Find Record 900 [1], 27 milliseconds
Find Record 900 [1], 27 milliseconds
Find Record 900 [1], 27 milliseconds
Find Record 900 [1], 27 milliseconds
Avg: 26.8 milliseconds

Sort by Value Desc, 688 milliseconds
Sort by Value Desc, 674 milliseconds
Sort by Value Desc, 681 milliseconds
Sort by Value Desc, 760 milliseconds
Sort by Value Desc, 666 milliseconds
Avg: 693.8 milliseconds

 

Internet Explorer 8 (5th Place) 993.8ms

Create and Fill Taffy, 30 milliseconds
Create and Fill Taffy, 30 milliseconds
Create and Fill Taffy, 32 milliseconds
Create and Fill Taffy, 31 milliseconds
Create and Fill Taffy, 31 milliseconds
Avg: 30.8 milliseconds

Do 80% record remove via lookup, 254 milliseconds
Do 80% record remove via lookup, 260 milliseconds
Do 80% record remove via lookup, 257 milliseconds
Do 80% record remove via lookup, 253 milliseconds
Do 80% record remove via lookup, 254 milliseconds
Avg: 255.6 milliseconds

Do a forEach Update, 119 milliseconds
Do a forEach Update, 119 milliseconds
Do a forEach Update, 123 milliseconds
Do a forEach Update, 116 milliseconds
Do a forEach Update, 120 milliseconds
Avg: 119.4 milliseconds

Find Every Record [1000], 287 milliseconds
Find Every Record [1000], 293 milliseconds
Find Every Record [1000], 297 milliseconds
Find Every Record [1000], 284 milliseconds
Find Every Record [1000], 283 milliseconds
Avg: 288.8 milliseconds

Find Record 900 [1], 14 milliseconds
Find Record 900 [1], 14 milliseconds
Find Record 900 [1], 13 milliseconds
Find Record 900 [1], 13 milliseconds
Find Record 900 [1], 13 milliseconds
Avg: 13.4 milliseconds

Sort by Value Desc, 286 milliseconds
Sort by Value Desc, 276 milliseconds
Sort by Value Desc, 294 milliseconds
Sort by Value Desc, 281 milliseconds
Sort by Value Desc, 292 milliseconds
Avg: 285.8 milliseconds

 

FireFox 3 (4th Place) 289.8ms

Create and Fill Taffy, 14 milliseconds
Create and Fill Taffy, 14 milliseconds
Create and Fill Taffy, 14 milliseconds
Create and Fill Taffy, 13 milliseconds
Create and Fill Taffy, 14 milliseconds
Avg: 13.8 milliseconds

Do 80% record remove via lookup, 79 milliseconds
Do 80% record remove via lookup, 81 milliseconds
Do 80% record remove via lookup, 81 milliseconds
Do 80% record remove via lookup, 83 milliseconds
Do 80% record remove via lookup, 79 milliseconds
Avg: 80.6 milliseconds

Do a forEach Update, 52 milliseconds
Do a forEach Update, 53 milliseconds
Do a forEach Update, 53 milliseconds
Do a forEach Update, 56 milliseconds
Do a forEach Update, 52 milliseconds
Avg: 53.2 milliseconds

Find Every Record [1000], 84 milliseconds
Find Every Record [1000], 86 milliseconds
Find Every Record [1000], 83 milliseconds
Find Every Record [1000], 84 milliseconds
Find Every Record [1000], 85 milliseconds
Avg: 84.4 milliseconds

Find Record 900 [1], 5 milliseconds
Find Record 900 [1], 5 milliseconds
Find Record 900 [1], 5 milliseconds
Find Record 900 [1], 4 milliseconds
Find Record 900 [1], 4 milliseconds
Avg: 4.6 milliseconds

Sort by Value Desc, 51 milliseconds
Sort by Value Desc, 50 milliseconds
Sort by Value Desc, 64 milliseconds
Sort by Value Desc, 51 milliseconds
Sort by Value Desc, 50 milliseconds
Avg: 53.2 milliseconds

 

FireFox 3.5 (3rd Place) 127.6ms

Create and Fill Taffy, 12 milliseconds
Create and Fill Taffy, 11 milliseconds
Create and Fill Taffy, 12 milliseconds
Create and Fill Taffy, 12 milliseconds
Create and Fill Taffy, 11 milliseconds
Avg: 11.6 milliseconds

Do 80% record remove via lookup, 18 milliseconds
Do 80% record remove via lookup, 18 milliseconds
Do 80% record remove via lookup, 18 milliseconds
Do 80% record remove via lookup, 19 milliseconds
Do 80% record remove via lookup, 17 milliseconds
Avg: 18 milliseconds

Do a forEach Update, 47 milliseconds
Do a forEach Update, 49 milliseconds
Do a forEach Update, 49 milliseconds
Do a forEach Update, 51 milliseconds
Do a forEach Update, 48 milliseconds
Avg: 48.8 milliseconds

Find Every Record [1000], 15 milliseconds
Find Every Record [1000], 14 milliseconds
Find Every Record [1000], 14 milliseconds
Find Every Record [1000], 14 milliseconds
Find Every Record [1000], 14 milliseconds
Avg: 14.2 milliseconds

Find Record 900 [1], 3 milliseconds
Find Record 900 [1], 3 milliseconds
Find Record 900 [1], 3 milliseconds
Find Record 900 [1], 3 milliseconds
Find Record 900 [1], 3 milliseconds
Avg: 3 milliseconds

Sort by Value Desc, 31 milliseconds
Sort by Value Desc, 32 milliseconds
Sort by Value Desc, 31 milliseconds
Sort by Value Desc, 32 milliseconds
Sort by Value Desc, 34 milliseconds
Avg: 32 milliseconds

 

Chrome (2nd Place) 86.8ms

Create and Fill Taffy, 6 milliseconds
Create and Fill Taffy, 3 milliseconds
Create and Fill Taffy, 4 milliseconds
Create and Fill Taffy, 3 milliseconds
Create and Fill Taffy, 3 milliseconds
Avg: 3.8 milliseconds

Do 80% record remove via lookup, 24 milliseconds
Do 80% record remove via lookup, 25 milliseconds
Do 80% record remove via lookup, 27 milliseconds
Do 80% record remove via lookup, 24 milliseconds
Do 80% record remove via lookup, 24 milliseconds
Avg: 24.8 milliseconds

Do a forEach Update, 27 milliseconds
Do a forEach Update, 28 milliseconds
Do a forEach Update, 27 milliseconds
Do a forEach Update, 29 milliseconds
Do a forEach Update, 29 milliseconds
Avg: 28 milliseconds

Find Every Record [1000], 11 milliseconds
Find Every Record [1000], 11 milliseconds
Find Every Record [1000], 11 milliseconds
Find Every Record [1000], 12 milliseconds
Find Every Record [1000], 11 milliseconds
Avg: 11.2 milliseconds

Find Record 900 [1], 1 milliseconds
Find Record 900 [1], 1 milliseconds
Find Record 900 [1], 1 milliseconds
Find Record 900 [1], 2 milliseconds
Find Record 900 [1], 1 milliseconds
Avg: 1.2 milliseconds

Sort by Value Desc, 17 milliseconds
Sort by Value Desc, 18 milliseconds
Sort by Value Desc, 17 milliseconds
Sort by Value Desc, 18 milliseconds
Sort by Value Desc, 19 milliseconds
Avg: 17.8 milliseconds

 

Safari 4 (1st Place) 75ms

Create and Fill Taffy, 7 milliseconds
Create and Fill Taffy, 5 milliseconds
Create and Fill Taffy, 5 milliseconds
Create and Fill Taffy, 5 milliseconds
Create and Fill Taffy, 4 milliseconds
Avg: 5.2 milliseconds

Do 80% record remove via lookup, 22 milliseconds
Do 80% record remove via lookup, 22 milliseconds
Do 80% record remove via lookup, 21 milliseconds
Do 80% record remove via lookup, 22 milliseconds
Do 80% record remove via lookup, 21 milliseconds
Avg: 21.6 milliseconds

Do a forEach Update, 19 milliseconds
Do a forEach Update, 19 milliseconds
Do a forEach Update, 17 milliseconds
Do a forEach Update, 18 milliseconds
Do a forEach Update, 18 milliseconds
Avg: 18.2 milliseconds

Find Every Record [1000], 9 milliseconds
Find Every Record [1000], 8 milliseconds
Find Every Record [1000], 8 milliseconds
Find Every Record [1000], 9 milliseconds
Find Every Record [1000], 9 milliseconds
Avg: 8.6 milliseconds

Find Record 900 [1], 3 milliseconds
Find Record 900 [1], 2 milliseconds
Find Record 900 [1], 2 milliseconds
Find Record 900 [1], 2 milliseconds
Find Record 900 [1], 1 milliseconds
Avg: 2 milliseconds

Sort by Value Desc, 21 milliseconds
Sort by Value Desc, 18 milliseconds
Sort by Value Desc, 19 milliseconds
Sort by Value Desc, 20 milliseconds
Sort by Value Desc, 19 milliseconds
Avg: 19.4 milliseconds

 

I’m not surprised Chrome was the winner, but I was surprised IE8 did so poorly.

UPDATED: Looks like Safari is a little quicker.

UPDATED: Added Firefox 3.5

UPDATED: Added IE7

Tags:

IT | Development

Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Profile

Member of the Church of Jesus Christ of Latter-Day Saints, Developer and IT Professional