mirror of
https://github.com/TangentFoxy/memex.git
synced 2024-11-22 04:54:23 +00:00
Improve benchmarking.
This commit is contained in:
parent
2d08df6079
commit
03b9e3f777
@ -17,10 +17,10 @@
|
|||||||
|
|
||||||
<!-- everything above here is for initial load (aka: display bg and pretty loading anim ASAP!) -->
|
<!-- everything above here is for initial load (aka: display bg and pretty loading anim ASAP!) -->
|
||||||
|
|
||||||
<script src="logic/mark.js"></script>
|
<script src="logic/seer.js"></script>
|
||||||
<script>
|
<script>
|
||||||
var benchmark = new Mark();
|
var seer = new Seer();
|
||||||
benchmark.install();
|
seer.install(false, 1);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="error"></div>
|
<div class="error"></div>
|
||||||
|
@ -14,7 +14,7 @@ function Main()
|
|||||||
|
|
||||||
this.install = function()
|
this.install = function()
|
||||||
{
|
{
|
||||||
benchmark.note('load all js files');
|
seer.note('load all js files');
|
||||||
|
|
||||||
this.util = new Util();
|
this.util = new Util();
|
||||||
this.database = new Wrap();
|
this.database = new Wrap();
|
||||||
@ -39,7 +39,7 @@ function Main()
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
benchmark.note('install main');
|
seer.note('install main');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.resetPage = function()
|
this.resetPage = function()
|
||||||
@ -67,31 +67,31 @@ function Main()
|
|||||||
{
|
{
|
||||||
this.database.start()
|
this.database.start()
|
||||||
.then((db) => {
|
.then((db) => {
|
||||||
benchmark.note('process db');
|
seer.note('process db');
|
||||||
|
|
||||||
this.resetPage();
|
this.resetPage();
|
||||||
this.updateQuery();
|
this.updateQuery();
|
||||||
|
|
||||||
benchmark.note('prep query');
|
seer.note('prep query');
|
||||||
return this.database.filter(db, this.queryCur);
|
return this.database.filter(db, this.queryCur);
|
||||||
})
|
})
|
||||||
.then((filtered) => {
|
.then((filtered) => {
|
||||||
benchmark.note('filter db');
|
seer.note('filter db');
|
||||||
return this.grid.buildAllArticles(filtered);
|
return this.grid.buildAllArticles(filtered);
|
||||||
})
|
})
|
||||||
.then((html) => {
|
.then((html) => {
|
||||||
benchmark.note('build html');
|
seer.note('build html');
|
||||||
|
|
||||||
let stats = this.database.stats();
|
let stats = this.database.stats();
|
||||||
benchmark.note('calc stats');
|
seer.note('calc stats');
|
||||||
|
|
||||||
this.nav.display(stats);
|
this.nav.display(stats);
|
||||||
benchmark.note('render stats');
|
seer.note('render stats');
|
||||||
|
|
||||||
this.grid.newDisplay(html);
|
this.grid.newDisplay(html);
|
||||||
// benchmark.note('render html');
|
// seer.note('render html');
|
||||||
|
|
||||||
benchmark.complete();
|
seer.report();
|
||||||
|
|
||||||
document.querySelector('.loading-wave').style.display = 'none';
|
document.querySelector('.loading-wave').style.display = 'none';
|
||||||
})
|
})
|
||||||
@ -102,6 +102,11 @@ function Main()
|
|||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.load = function()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// this.load = function(target)
|
// this.load = function(target)
|
||||||
// {
|
// {
|
||||||
// lightbox.close();
|
// lightbox.close();
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
function Mark()
|
|
||||||
{
|
|
||||||
this.timeBegin = null;
|
|
||||||
this.timeStore = null;
|
|
||||||
this.curTime = null;
|
|
||||||
this.specialDesc = null;
|
|
||||||
this.specialTime = null;
|
|
||||||
|
|
||||||
this.install = function()
|
|
||||||
{
|
|
||||||
this.timeBegin = Date.now();
|
|
||||||
this.timeStore = Date.now();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.note = function(desc)
|
|
||||||
{
|
|
||||||
this.curTime = Date.now();
|
|
||||||
console.log((this.curTime - this.timeStore) + ' ms to ' + desc);
|
|
||||||
this.timeStore = this.curTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.special = function(desc)
|
|
||||||
{
|
|
||||||
this.specialDesc = desc;
|
|
||||||
this.specialTime = Date.now() - this.timeStore;
|
|
||||||
this.note(desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.complete = function()
|
|
||||||
{
|
|
||||||
let total = (Date.now() - this.timeBegin);
|
|
||||||
console.log('TOTAL TIME: ' + total + ' ms');
|
|
||||||
if (this.specialDesc != null)
|
|
||||||
{
|
|
||||||
console.log(((this.specialTime / total)*100).toFixed(0) + ' % of time spent on: ' + this.specialDesc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
48
docs/logic/seer.js
Normal file
48
docs/logic/seer.js
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
"use strict";
|
||||||
|
function Seer()
|
||||||
|
{
|
||||||
|
this.verbose = false
|
||||||
|
this.quota = 0;
|
||||||
|
|
||||||
|
this.timeBegin = null;
|
||||||
|
this.timeRef = null;
|
||||||
|
this.book = null;
|
||||||
|
|
||||||
|
this.install = function(verbose, quota)
|
||||||
|
{
|
||||||
|
this.verbose = verbose;
|
||||||
|
this.quota = quota;
|
||||||
|
this.timeBegin = Date.now();
|
||||||
|
this.timeRef = Date.now();
|
||||||
|
this.book = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
this.note = function(desc)
|
||||||
|
{
|
||||||
|
var entry = [desc, (Date.now() - this.timeRef)];
|
||||||
|
this.book.push(entry);
|
||||||
|
if (this.verbose)
|
||||||
|
{
|
||||||
|
console.log(entry[1] + ' ms to ' + entry[0]);
|
||||||
|
}
|
||||||
|
this.timeRef = Date.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.report = function()
|
||||||
|
{
|
||||||
|
let total = (Date.now() - this.timeBegin);
|
||||||
|
console.log('Completed in: ' + total + ' ms');
|
||||||
|
if (this.quota > 0)
|
||||||
|
{
|
||||||
|
this.book.sort(function(a, b)
|
||||||
|
{
|
||||||
|
return a[1] + b[1];
|
||||||
|
});
|
||||||
|
for (var i = 0; i < Math.min(this.quota, this.book.length); i++)
|
||||||
|
{
|
||||||
|
let percentage = ((this.book[i][1] / total) * 100).toFixed(1);
|
||||||
|
console.log(percentage + ' % of time spent on: ' + this.book[i][0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -33,7 +33,7 @@ function Grid()
|
|||||||
|
|
||||||
document.querySelector('main').innerHTML = html;
|
document.querySelector('main').innerHTML = html;
|
||||||
|
|
||||||
benchmark.note('render html');
|
seer.note('render html');
|
||||||
|
|
||||||
// LAYOUT
|
// LAYOUT
|
||||||
if (SETTINGS.USEMASONRY)
|
if (SETTINGS.USEMASONRY)
|
||||||
@ -56,7 +56,7 @@ function Grid()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
benchmark.special('masonry layout');
|
seer.note('masonry layout');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user