Benchmarking reveals filtering out non-files takes forevs

toString everything        0.199
Filter out non-files       0.703
Everything                 0.961
This commit is contained in:
Corey Johnson & Nathan Sobo 2012-01-03 17:34:21 -08:00
parent 1420ca9adb
commit 982d5a4426
4 changed files with 25 additions and 2 deletions

View File

@ -3,6 +3,18 @@
<script src='src/stdlib/require.js'></script>
<script>
window.measure = function(name) {
var start = new Date().getTime();
return {stop: function() {
var end = new Date().getTime();
var total = (end - start) / 1000;
while(name.length < 40) {
name = name + " "
}
console.log(name + (end - start) / 1000);
}}
}
window.onload = function() {
require($bootstrapScript);
}

View File

@ -49,8 +49,10 @@ class FileFinder extends Template
if not query
urls = @urls
else
scoreMeasure = measure 'Score urls'
scoredUrls = ({url, score: stringScore(url, query)} for url in @urls)
scoredUrls.sort (a, b) -> a.score > b.score
urls = (urlAndScore.url for urlAndScore in scoredUrls when urlAndScore.score > 0)
scoreMeasure.stop()
urls.slice 0, @maxResults

View File

@ -6,7 +6,13 @@ class Project
constructor: (@url) ->
getFilePaths: ->
everythingMeasure = measure "Everything"
projectUrl = @url
fs.async.list(@url, true).pipe (urls) ->
url.replace(projectUrl, "") for url in urls when fs.isFile(url)
filterMeasure = measure "Filter out non-files"
urls = (url.replace(projectUrl, "") for url in urls when fs.isFile(url))
filterMeasure.stop()
everythingMeasure.stop()
urls

View File

@ -100,6 +100,9 @@ module.exports =
list: (path, recursive) ->
deferred = $.Deferred()
$atomController.contentsOfDirectoryAtPath_recursive_onComplete path, recursive, (result) ->
deferred.resolve (subpath.toString() for subpath in result)
subpathMeasure = measure 'toString everything'
subpaths = (subpath.toString() for subpath in result)
subpathMeasure.stop()
deferred.resolve subpaths
deferred