From a19b5cc6a2ce34aa36e2583deda24c76bfd4f81a Mon Sep 17 00:00:00 2001 From: Tianlin Shi Date: Fri, 29 Jul 2016 11:15:08 -0700 Subject: [PATCH] /meta optimization #1: do not fetch duplicate filehash --- server/frontend/static/coffee/client.coffee | 6 ++++++ server/frontend/static/coffee/client.js | 11 +++++++++++ server/server.py | 2 -- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/server/frontend/static/coffee/client.coffee b/server/frontend/static/coffee/client.coffee index 5f9d365..83bf618 100644 --- a/server/frontend/static/coffee/client.coffee +++ b/server/frontend/static/coffee/client.coffee @@ -9,6 +9,12 @@ window.client = { , fetchFileMeta: (filehashes, callback) -> + # ignore filehash already in meta_by_filehash. + new_filehashes = [] + for filehash in filehashes + if filehash in store.metaByFilehash + continue + new_filehashes.push(filehash) $.post('file/meta', { filehashes: JSON.stringify(filehashes), }, (response) -> diff --git a/server/frontend/static/coffee/client.js b/server/frontend/static/coffee/client.js index 0825f4e..f725850 100644 --- a/server/frontend/static/coffee/client.js +++ b/server/frontend/static/coffee/client.js @@ -1,5 +1,7 @@ // Generated by CoffeeScript 1.10.0 (function() { + var indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + window.client = { updateFile: function(filehash, data) { var key; @@ -12,6 +14,15 @@ return $.post('file/update', data, function(response) {}); }, fetchFileMeta: function(filehashes, callback) { + var filehash, i, len, new_filehashes; + new_filehashes = []; + for (i = 0, len = filehashes.length; i < len; i++) { + filehash = filehashes[i]; + if (indexOf.call(store.metaByFilehash, filehash) >= 0) { + continue; + } + new_filehashes.push(filehash); + } return $.post('file/meta', { filehashes: JSON.stringify(filehashes) }, function(response) { diff --git a/server/server.py b/server/server.py index a49dea2..5a38879 100644 --- a/server/server.py +++ b/server/server.py @@ -316,8 +316,6 @@ def post(self): global _userid, _filehashes _userid = self.userid _filehashes = filehashes - import cProfile - cProfile.run('load_meta_by_filehash(_userid, *_filehashes)') self.write({ 'meta_by_filehash': meta_by_filehash })