Googles kjærlighet / hat tilnærming til JavaScript

Ta en titt på ikke-søkeproduktene som Google har lansert gjennom tidene: Dokumenter, Chrome, Chromebooks, Maps, Android, listen fortsetter. Intensjonen med disse produktene er klar: få brukere til å øke nettbruken slik at Google kan selge annonser til dem. Når internettbruken øker, øker Googles inntekter på grunn av AdWords-behemoth.

Det kan ikke stilles spørsmål ved hastigheten som Googles Chrome-nettleser kan gjengi og kjøre websider og applikasjoner. Google vet at for at nettet skal fungere som en plattform, må den nærme innføringen av native code til et slikt punkt at lekbrukeren ikke kan fortelle forskjellen når det gjelder utførelseshastighet. Grunnlaget for denne hastigheten ligger ikke så mye i WebKit-nettlesermotoren, så mye som den ligger i Chrome's v8 JavaScript-motor.

Så vellykket og effektiv er v8 at den er tatt på serversiden og blir brukt som kjernen i den hendelsesdrevne Node.js-serveren.

Google bør med rette applauderes for å akselerere utførelsen av JavaScript og provosere andre nettleserprodusenter til å øke spillet for å holde tritt med Chrome.

Firefox har vært Chromes viktigste rival i resultatene, men forrige uke la jeg merke til at Mozilla-nettleseren hadde gjenoppdaget en gammel vane med forsøkt og ofte vellykket dominans av maskinens minne; et problem som jeg trodde var blitt drept av for lenge siden av Mozilla-teamet. Som det er tradisjon, festet jeg umiddelbart skylden på den gamle ressursforbrukeren som heter Flash.

Men dette var en av de sjeldne tilfellene hvor Flash ikke var ansvarlig for minnet. Et blikk på Firefox handler om: minnesiden fingret den skyldige med en gang: Googles + 1-knapp.

Over halvannen GB minne ble tildelt Firefox, hvorav over halvparten ble brukt opp av JavaScript-motoren, og som den ledende kunden av minnet var Googles ironisk kalt +1 fastbutton. Hurtigknappen er den lille knappen med antallet + 1s en side har. Hemmeligheten bak hvordan denne knappen kan eie så mye minne, ligger i den omhyggelige designen av Google Reader.

Som noen som blar gjennom Google Reader i den utvidede visningen, betyr dette at for hver RSS-vare som blir gjengitt på skjermen min i løpet av en dag - et tall i hundrevis, om ikke tusenvis - er det en egen +1-knappanrop laget for hver eneste historie. Sluttresultatet er at over en fjerdedel av nettleserens totale minnebruk blir tatt opp av en lite brukt delingswidget.

Hvor mye kode brukes til +1-knappen? Her er kilden til det:

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}}); 

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});
window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

window.__SSR = {c: 1.0, at:'AEIZW7QA\/ehGTQ1zoq\/VWNXexgcyzbET2yWIG9qwsHSt2ho2kGles5BkYhyEntZqoGqo\/QfKVJtKTd1lLUBwaGif6z+MVs6kN2z7Z95+DgUwGDf0KePz00s\x3d', ld:, 2, 1, ,, 0 , s:'widget', id:'http:\/\/www.techrepublic.com\/blog\/australia\/fetching-64-bit-mozilla-builds-for-linux\/287', is:0}; 1 window'__P1_XP' = {"UC":true, "UH":true}; window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window'__P1_BASEURL' = 'https://plusone.google.com/'; window'__P1_LOCALE' = 'en_GB'; var _DumpException = function(e) { e'errsource' = e'errsource' || 'api_widget'; throw e; } window'___jsl' = window'___jsl' || {}; window'___jsl''ci' = {"gwidget":{"parsetags":"explicit", "superbatch":false}, "iframes":{"sharebox":{"params":{"json":"&"}, "url":":socialhost:/:session_prefix:_/sharebox/dialog"}, "plus":{"url":":socialhost:/:session_prefix:_/pages/badge"}, ":socialhost:":"https://plusone.google.com", "plusone_m":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}, "card":{"params":{"style":"#", "userid":"&"}, "url":":socialhost:/:session_prefix:_/hovercard/internalcard"}, "plusone":{"params":{"count":"", "url":"", "size":""}, "url":":socialhost:/:session_prefix:_/+1/fastbutton"}}, "googleapis.config":{"methods":{"pos.plusones.list":true, "chili.people.list":true, "pos.plusones.get":true, "chili.people.get":true, "pos.plusones.insert":true, "pos.plusones.delete":true, "chili.activities.list":true, "chili.activities.get":true, "pos.plusones.getSignupState":true, "chili.activities.search":true}, "requestCache":{"enabled":true}, "versions":{"chili":"v1", "pos":"v1"}, "rpc":"/rpc", "root":"https://www.googleapis.com", "root-1p":"https://clients6.google.com", "sessionCache":{"enabled":true}, "transport":{"isProxyShared":true}, "xd3":"/static/proxy.html", "developerKey":"AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ", "auth":{"useInterimAuth":false}}};var params = {};params'height' = 24.0 ;iframes.ready(params, {'canAutoClose': function() {var f = window'__CAN_AUTOCLOSE_BUBBLE'; return f ? f() : true;}});

Det er rotete, men kommer på bare ni linjer.

Se imidlertid nærmere, så ser du at det ringer to andre JavaScript-biblioteker - disse filene klokker inn på 333 og 128 linjer hver. Det er omtrent 500 linjer med minifisert JavaScript for å gjengi en enkelt knapp.

Avhengig av strukturen på et nettstedstrøm, kan jeg få opptil seks artikler som vises på skjermen i den utvidede visningen - det er 3000 linjer med JavaScript for å gjengi bare +1-knappene, dette er på toppen av JavaScript som brukes til å kontrollere Google Leseren selv.

For et selskap som er ment å evangelisere bruken av JavaScript som førsteklasses språk på nettet og utover, er det ganske smellen i ansiktet.

Det er direkte på grunn av denne minnebruken at jeg har hatt systemkrasj de siste par ukene. Å starte en virtuell maskin skal ikke være starten på en raskt skjerpende dødsspiral som legges inn på grunn av at verts- og gjesteoperatørene kjemper om det lille minnet som gjenstår når Google Reader har vært åpen i lang tid.

Så langt har jeg påpekt problemene med Firefox, hovedsakelig fordi det er min primære nettleser, men i en test av bugreplikasjon klarte jeg også å få Chrome til å tygge opp det tilgjengelige minnet ganske enkelt ved å lese RSS-feeds. Jeg vil gi Chrome litt kreditt for å være langt mer grundig og aggressiv enn Firefox i minneprosedyrene; det tok større tid for Chrome å treffe høydene på Firefox, men likevel traff dem det gjorde.

Å løse minnebruken i Chrome var så enkelt som å lukke kategorien Leser og åpne den på nytt. Chrome-tabulator per prosess-arkitektur gjør det mulig å rydde opp i seg selv mye bedre enn den eneste prosessen Firefox kan. Men dette er langt fra en brukersentrisk løsning - hvorfor skal Jane-brukeren måtte lukke Reader-fanen ganske enkelt for å starte et program som krever mye minne? Det er rett og slett ikke akseptabelt hvis nettet skal bli fremtidens applikasjonsplattform.

Skylden for dette faller derfor ikke på nettleserne, men på den ekstra JavaScript som er lagt til i Google Reader redesign.

Mens Reader er den største fornærmede i Googles stall av nettsteder, trenger du å tenke på noen av de andre lovbryterne i minnebruk.

Google Analytics har et nytt utseende som bruker Flash for å vise en nyttig sanntidsvisualisering av innkommende trafikk. Dessverre, når du forlater siden som kjører i noen timer, gjør Analytics tilnærming til en halv GB minne. Og Google+ mangler ikke i minneforespørsler, og heller ikke Gmail eller Google Docs, alle tre holder konsekvent mellom 30 til 50 megabyte hver.

Husk at Google er et selskap som driver Chromebook, dens versjon av netbook-formfaktoren. Et raskt blikk på modellspesifikasjonene viser at Chromebooks for øyeblikket tilbyr 2 gigabyte minne. Så hvis en bruker surfer på RSS, skriver opp noen få dokumenter, sjekker e-post og kanskje til og med ser på nettstedanalysene sine som Google har til hensikt å gjøre - det etterlater ikke mye minne for nettleseren selv eller for Angry Birds eller andre flash-spill å passer inn i.

V8-motoren kan være lynraskt, men å kjøre den på den tregere Atom-prosessoren i en Chromebook med minne begrenset til 2 gigabyte ville ikke være en hyggelig opplevelse.

Dette er grunnen til at Google bør være ekstra fokusert på å optimalisere og redusere omkostningene som nettstedene har. Hvis en bruker med en Core i5 bærbar PC har problemer med ytelsen, hvordan må det da være for de som har tatt et skritt fra Chromebook?

Den beste innkapslingen av Googles nylig funnet kjærlighet til JavaScript-verbosity, må falle til Darts JavaScript-kompilerte Hello World-eksempel, som veier inn litt over 17.000 kodelinjer. Kommentarene som er knyttet til dette eksemplet oppsummerer stemningen om Dart langt bedre enn ord kan.

Bare fordi Google produserer den raskeste JavaScript-motoren på markedet, betyr ikke det at den skal glemme å prøve å få hvert millisekund ytelse ut av JavaScript-nettstedet: ikke bare for brukere av Chrome, men også for de fleste brukere som ikke bruker Chrome. og lider større tap når Googles JavaScript blir uvøren med minnet. Nettleserlandskapet er et mer komplekst scenario enn å bestemme oss for å bruke den raskeste nettleseren - hvis dette var sant ville vi alle gått over til Opera tilbake på begynnelsen av 2000-tallet.

Det er bare så lang tid at en leverandør kan bruke en raskere plattform for å overgå ulempene med en økning i programvareutviklingen - Microsoft snudde hjørnet med Windows 7, Google ville gjøre det bra for å lære av den leksjonen mens plattformen fortsatt er i utvikling.

© Copyright 2020 | mobilegn.com