Benchmark de JavaScript 3 – Windows

6 Mar 2010 Postado em: Tecnologia, Web

Pois recentemente a Opera Software anunciou: o Opera 10.50 é o navegador mais rápido da Terra. Fui conferir com o já tradicional Benchmark de JavaScript.

O Opera teve sua engine de JavaScript alterada. O velho Futhark foi substituído pelo novíssimo Carakan. Por favor, não façam piadas com o nome da engine, como Caracu, ou coisas do gênero. Tão avisados.

Vamos ao benchmark.

O teste

Benchmark utilizado: Webkit SunSpider 0.9

Máquina de teste: Intel Core2Duo T6600 2.2 GHz, 4GB RAM, Windows 7 64 bits

O que foi mudado desde o último benchmark

A máquina de testes não é a mesma. Tem um processador um pouco mais singelo, o que justifica o aumento dos números em relação ao benchmark anterior. Mas o que interessa é a relação deles uns com os outros no mesmo benchmark, então tá tudo bem.

Não mais executarei o SunSpider 3 vezes. Cada uma dessas vezes já são 5 execuções automáticas do teste, o que é mais que suficiente. Contudo, agora, além do resultado, apresentarei o intervalo de confiança de cada resultado, na coluna “IC”.

Os resultados

Navegador Versão Engine Resultado IC
Google Chrome 4.1.429.1025 V8 714 ms 4.4%
Opera 10.50 Carakan 665.4 ms 3.1%
Safari 4.0.4 (531.21.10) JavaScriptCore 743.6 ms 1.6%
Firefox 3.6 TraceMonkey 1201 ms 5.1%
Internet Explorer 32 bits 8.0.7600.16385 JScript 5670.2 ms 0.5%
Internet Explorer 64 bits 8.0.7600.16385 JScript 5704.6 ms 1.3%

Caraca(n)! Realmente o Opera surpreendeu e falou a mais pura verdade: o Opera 10.50 é o browser mais rápido da Terra atualmente.

Se fôssemos considerar o intervalo de confiança, aumentando o índice do Opera e diminuindo o do Google Chrome, este último passaria a frente por cerca de 4 ms, algo irrisório, e seria um empate técnico. Mas a média realmente fala a favor do Opera quanto a desempenho de JavaScript.

Como já disse, o Google Chrome cai para segundo lugar (perdedoooor), e o Safari fica na sequência, em terceiro.

O Firefox perde terreno e acaba em quarto, mesmo com seu poderoso TraceMonkey.

Internet Explorer (32 e 64) ficam obviamente em último, como sempre, com um desempenho sofrivelmente pior que os demais. O que impressiona é que as versões atuais façam o de 32 bits ser mais rápido do que o de 64. No mínimo estranho.

Então, fica a recomendação: experimente o Opera. Infelizmente, a versão 10.50 só está disponível para Windows por enquanto. Quando a versão para Linux sair, postarei aqui um novo benchmark para Linux.

Eu já estou experimentando aqui.

Será o renascimento do Opera?

Internet Explorer 8 finalmente ultrapassa versão 6

3 Feb 2010 Postado em: Tecnologia, Web

Analisando até dezembro de 2009, o Internet Explorer 6 ainda era a versão “individual” com mais utilizadores.

Em janeiro de 2010, a história finalmente se reverteu, conforme o http://marketshare.hitslink.com/.

O Internet Explorer 8 terminou o mês com 22,37% de market share (primeiro lugar do ranking), enquanto a versão 6 caiu para segundo lugar, com 20%. O Firefox 3.5 ficou em terceito lugar, com 17,08%.

Sem levar em conta as versões, o Internet Explorer segue em primeiro lugar absoluto, com 62,12%, uma leve queda em relação ao mês anterior. O Firefox é o segundo, com 24,43%, também com leve queda. O Google Chrome é o terceiro, com 5,22%, um aumento considerável em comparação ao mês anterior.

JavaScript: Clonar ou não clonar? Eis a questão.

26 Jan 2010 Postado em: Tecnologia, Web

Aqui vai uma “diquinha básica”.

Você está todo contente fazendo seu código JavaScript. Por alguma razão, no seu algoritmo, você tem que fazer uma cópia de um array todo. E vai bem contente fazer…

var original = [1,2,3,4,5];
var novo = original;
novo[0] = 999;
alert(original[0]);

…e acaba ficando com cara de tacho quando uma janelinha com o número 999 aparece.

Quando você usa o operador “=” no JavaScript, para objetos e arrays, na verdade está criando uma nova referência para O MESMO objeto. É como um ponteiro em C. Ruby também é assim. Uma penca de linguagens é assim. No exemplo acima, “novo” e “original” são efetivamente o mesmo array. Ao alterar um, o outro também é alterado, pois são o mesmo. Dois nomes para a mesma área de memória. Dois ponteiros iguais. Duas metades da mesma laranja. Dois… ah já entendeu.

Bem, e se eu quiser fazer uma cópia, e não uma nova referência? Aí depende.

JavaScript NÃO tem função de clonagem padrão na própria linguagem. Mas pode-se usar uma malandragem, se o alvo da cópia for um array (como no exemplo acima). Veja a malandragem a seguir.

var original = [1,2,3,4,5];
var novo = [].concat(original);
novo[0] = 999;
alert(original[0]);

Viva! A janelinha mostra o número 1, como queríamos. O que fizemos na linha

var novo = [].concat(original);

foi criar um array novo e vazio ([]), e concatenar a este array os elementos do outro com a função concat. Isso gera um novo array como esperado, e não uma referência ao “original”.

Já quanto a clonar objetos, sinto, mas não tem uma malandragem curta e óbvia como essa. Você tem de criar sua própria função de clonagem. Pesquise por “javascript” e “clone” que você encontrará um bom número de implementações diferentes, curtas e longas, e então eleja sua favorita.

Vamos à Disneylândia com o Polegar Vermelho

30 Dec 2009 Postado em: Pessoal, Tecnologia

2009 foi um ótimo ano pra mim. Tanto na vida pessoal como na profissional. [/faustão]
A única coisa que faltou nesse ano foi ir à Disneylândia com o Polegar Vermelho. Parte por falta de grana, parte por falta de Polegar Vermelho.

Creio que foi o ano em que amadureci, e me encaminhei pro fim da crise dos 20 e poucos.

Foi um bom ano pra se aprender ainda mais sobre web, acessibilidade, usabilidade, as vantagens e desvantagens de cada tecnologia empregada, etc.

2009 foi um ano de despertar para os padrões web. Não só meu, de todos os Desenvolvedores web. Todos mesmo. Pelo menos dos Desenvolvedores de verdade. Aqueles com “D” maiúsculo. Não aqueles de “arrasta-e-clica” no Dreamweaver.

2009 foi o ano em que proclamamos a morte de uma fera, antes pensada como imortal: o Internet Explorer 6. Já vai tarde. Não sentiremos falta.

2009 foi o ano em que compreendi a mania dos Macmaníacos, pois comprei um iPod Touch.

2009 foi o ano em que saiu um novo Windows, e bom. Bom mesmo. Alguns anos atrás não me imaginaria dizendo isso hoje.

2009 foi também o despertar para uma possível Segunda Grande Guerra. Dos browsers. Cada qual tenta superar os demais lançando melhorias de desempenho, usabilidade, e suporte a padrões web. Bom para os desenvolvedores de browsers. Bom para os desenvolvedores web. Bom para os usuários finais.

2009 foi o ano de boas surpresas na tecnologia, mas também de péssimas decepções (vide Google Wave e “novo” Orkut).

2009 foi o ano do despertar para um compartilhamento de informações em tempo real. Infelizmente, a maior parte dessa informação é lixo. :-(

2009 foi o ano em que se foram grandes ícones. Mas quem sabe, surgiram futuros grandes novos.

2009 foi o ano em que o Google assustou com declarações sobre privacidade.

Foi o ano em que a Microsoft começou a ter uma ferramenta de buscas bem sucedida.

Foi um ano em que se discutiu sobre o meio-ambiente. Mas ficou só na discussão.

2009 foi um ano. No fim das contas, um bom ano.

Que em 2010, tenhamos um ano ainda melhor.

Que o Internet Explorer 6 seja reduzido cada vez mais ao pó, e suma definitivamente do mapa.

Que os padrões web se popularizem mais.

Que a acessibilidade seja priorizada, mas sem descuidar da usabilidade. E vice-versa.

Que novas tecnologias apareçam, ou não. Se aprendermos a utilizar bem as existentes, já é ótimo.

Que a internet fique cada vez mais rápida.

Que o iPhone passe a ter vídeo-chamadas (sem utilizar o iMirror), e que seja barato.

Que não roubem tanto na política.

Que discutamos menos. E quando discutirmos, que se produza algo útil.

Que ganhemos mais dinheiro. Pelo menos o suficiente.

Que tenhamos boas idéias. E que não fiquem só no papel.

Que cresçamos mais em conhecimento.

Que passemos a nos preocupar mais com nossa privacidade online.

Que eu compre uma câmera fotográfica massa, pra tirar fotos legais, como meus amigos fazem.

Que o HTML5 cresça.

Que viajemos para lugares legais.

Que confiemos mais em Deus.

Que corrijamos nossos defeitos. Ou parte deles.

Que eu não tenha errado muito os tempos verbais nessa lista.

Que a internet deixe de ter tanto lixo.

E que viajemos à Disneylândia com o Polegar Vermelho.

São os meus votos de um Feliz 2010.

O min2.me acabou.

13 Dec 2009 Postado em: Não categorizado

O min2.me acabou. Apesar de uma sentir uma tristeza por fazer isso, tive de fazê-lo.

Vários foram os motivos que me levaram a tomar essa decisão, e farei um resumo aqui.

O principal deles é o fator tempo. Um “encurtador” de URLs, apesar de simples na idéia, requer uma série de cuidados que demandam tempo para implementar. Um desses cuidados é a falta de segurança que URLs curtas representam. Muitas pessoas mal-intencionadas utilizam uma URL curta para ofuscar/esconder alguma URL grande de destino perigoso. Arquivos executáveis, páginas maliciosas, etc. Tentar proteger os usuários que clicam em uma URL minimizada é uma tarefa complicada, e demanda tempo de pesquisa e implementação, algo que já não disponho mais. O min2.me era, para mim, um hobby, e não um trabalho; mas é um hobby que não posso mais manter.

Infelizmente, isso estava ocorrendo com o min2.me. Devido a isso, eu fui praticamente expulso de minha hospedagem anterior, a BlueHost, que disse que eu não poderia mais hospedar o sistema lá. Disseram que o sistema de URLs curtas era um risco para os usuários e para os servidores deles (não entendo como esta última, mas tudo bem), e que eles não admitem um sistema desses em seus servidores. Inclusive, não recomendo a BlueHost, pois suspenderam minha conta sem sequer me avisar antes.

Mas isto serviu para terminar com o pavio, e explodir o barril de pólvora. Eu sabia que o sistema realmente representa um risco a quem clica nas URLs curtas, e eu não tinha mais tempo para implementar medidas de segurança.

Além disso, o sistema apenas me trazia prejuízo de tempo (e um pouco financeiro), e não me dava retorno monetário nenhum.

O sistema também não obteve a popularidade que eu esperava, provavelmente por haver muitos serviços do mesmo gênero, e muitos sabidamente melhores que o meu, pois seus respectivos donos estão investindo tempo e dinheiro neles, e fazendo deles um negócio.

E assim, em vez de manter um sistema inseguro (e um tanta capengo), achei melhor encerrá-lo.

Contudo, as URLs já minimizadas no min2.me ainda funcionarão, sim, por tempo indeterminado. Não haverá mais contagem de cliques, nem a possibilidade de gerar novos, nem a página inicial com mais clicados e últimos tweets.

Sinto muito pela decisão e peço desculpas pela mesma, principalmente aos usuários assíduos do sistema. Agradeço o companheirismo e a apreciação da ferramenta em seu curto tempo de vida.

Recomendo dois sistemas brasileiros que fazem o mesmo serviço: migre.me e atalho.to.

Um abraço,

Jeronimo

Benchmark de JavaScript 2 – Windows

28 Nov 2009 Postado em: Tecnologia, Web

Pra quem não se lembra do primeiro benchmark para Windows, pode vê-lo aqui.

A mudança em relação ao primeiro teste:

  • O Internet Explorer de 64 bits foi adicionado ao teste.

O teste

Ainda utilizando o Webkit SunSpider 0.9 para os testes. Cada rodada do SunSpider consiste de 5 execuções de seus testes. Três rodadas foram executadas por navegador, totalizando 15 execuções do teste. A unidade numérica é milissegundos (ms).

A máquina de teste: Intel Core2Duo E8400 @ 3GHz, 2 GB de RAM, rodando Windows 7 64 bits RC1.

Os resultados

Navegador JavaScript Engine Rodada 1 Rodada 2 Rodada 3 Média
Internet Explorer 8.0.7100.0 JScript 3939,4 3959 3961,4 3953,267
Internet Explorer 8.0.7100.0 64 bits JScript 3756,6 3744 3775,4 3758,667
Opera 10.10 Futhark 2488,4 2481,4 2484 2484,6
Firefox 3.5.5 TreaceMonkey 848,4 860,6 867,4 858,4
Safari 4.0.4 – 531.21.10 JavaScriptCore 393 392,2 395 393,4
Google Chrome 3.0.195.33 V8 387 384 384,8 385,2667

O Internet Explorer ficou em último, como já esperado. Ele teve um tempo aproximadamente dez vezes maior que os melhores do teste. A versão de 64 bits teve pouco ganho, cerca de 200 ms.

O Opera 10.10, assim como no primeiro teste, ganhou apenas do Internet Explorer. Faço votos de que este excelente navegador melhore sua engine de JavaScript futuramente.

O Firefox melhorou bastante em relação ao teste 1. Ok, ok, o sistema operacional da máquina era outro, mas os números ficaram com alguma semelhança, principalmente Internet Explorer e Opera; estes dois últimos tiveram algum ganho em comparação com o último teste, mas a redução de tempo do Firefox da versão 3 para a 3.5.5 foi espantosa. A substituição do velho SpiderMonkey pelo novo TraceMonkey foi algo que realmente fez a diferença.

E agora, a parte que eu tive uma surpresa.

O Google Chrome teve um pequeno ganho da versão 2 para a 3, uns 100 ms.
Mas o pessoal da maçã, conforme eu havia dito no último teste 1 para Windows, estava surpreendendo. E agora, me surpreendeu ainda mais. Lançaram a versão final do Safari 4, com uma ótima melhoria de JavaScript. O Safari teve sua média final menos de 10 ms maior do que o Google Chrome, encostando, assim, seu JavaScriptCore no V8 da Google. É um empate técnico, pois 10 ms já é uma diferença desprezível.

Sendo assim, pela primeira vez temos um empate. Os melhores browsers para Windows – em relação à execução de JavaScript – são Google Chrome 3 e Safari 4. Um empate entre Google e Apple.

Benchmark de JavaScript 2 – Linux

20 Nov 2009 Postado em: Linux, Tecnologia, Web

Após quase seis meses, venho publicar o segundo Benchmark de JavaScript.
Pra quem não se lembra do primeiro, pode vê-lo aqui.

As mudanças em relação ao primeiro teste:

  • O Konqueror não será mais testado. A partir de agora, considerarei em todos os meus benchmarks (Linux e Windows) apenas os cinco navegadores principais: Firefox, Opera, Chrome, Safari e, por fim, Internet Explorer.
  • Nos testes de Linux, será incluído o Google Chrome – versão instável, de desenvolvimento, e nativa – apenas a caráter de curiosidade. O uso de navegadores instáveis, em fase de desenvolvimento, beta, etc, jamais será incentivado aqui. Mesmo que um navegador em desenvolvimento apresente resultado melhor do que outro que já está em versão estável, o em desenvolvimento não será recomendado, nem será considerado o melhor do teste a fins de recomendação.

O teste

Ainda utilizando o Webkit SunSpider 0.9 para os testes. Cada rodada do SunSpider consiste de 5 execuções de seus testes. Três rodadas foram executadas por navegador, totalizando 15 execuções do teste. A unidade numérica é milissegundos (ms).

A máquina de teste: AMD Athlon 64 3200+ 2GHz, 2.5 GB de RAM, rodando Ubuntu 8.04 LTS.

Os resultados

Navegador JavaScript Engine Rodada 1 Rodada 2 Rodada 3 Média
Firefox 3.5.5 TraceMonkey 2297,6 2131 2176,6 2201,73
Opera 10.00 Futhark 8845,2 8893,6 8894,6 8877,8
Google Chrome 4.0.249.0 V8 1214,4 1285,2 1194,2 1231,27

Mesmo sendo o Google Chrome o melhor em desempenho, seu uso ainda não é recomendado, por não ser uma versão estável. Assim, a melhor opção para Linux ainda é o Firefox. Como já disse em outras oportunidades, cada vez mais aplicativos são desenvolvidos pra web hoje, e a maioria utiliza do poder do JavaScript, o que justifica a utilização de um navegador que seja bom neste aspecto: a execução do JavaScript.

O Firefox teve um ótimo ganho em comparação ao último benchmark (compare); o 3.5 no Linux ficou mais de 2 vezes mais rápido. O Opera também teve um bom ganho que deve ser considerado, apesar de ainda ficar bem atrás dos outros navegadores.

E o Google Chrome é a promessa. A promessa de ser aquilo que já é, hoje, no Windows: o navegador (estável) mais rápido em execução de JavaScript. Esperemos.

Que saudades da aurora da minha vida

22 Oct 2009 Postado em: Pessoal

Ultimamente tenho andado muito saudosista; relembro coisas de minha infância que não vejo a piazada de hoje em dia fazer. E olha que só tenho 23 anos.

“Oh! que saudades que tenho
Da aurora da minha vida,
Da minha infância querida
Que os anos não trazem mais!”

-”Meus oito anos”, de Casimiro de Abreu

A impressão que tenho é que a gurizada hoje em dia já nasce na frente de um computador, com contas de Orkut/Facebook/Twitter/afins, e sabendo usar todos aqueles botões – que sequer me arrisco a tentar entender – de um controle de PlayStation.
Dessa saudade, em uma conversa com um amigo (@foxten), nos lembramos de coisas que eu, particularmente, não vejo mais ocorrerem (muitas delas).

  1. Todo mundo usava mercúrio; não tinha essa baboseira de câncer;
  2. Jogos de tabuleiro;
  3. Ir na “venda” buscar Frutili (sei lá qual é o raio da grafia certa);
  4. Se o picolé fosse Chicabom, então, era uma festa;
  5. Juntava os palitos pra alguma brincadeira, ou algum prêmio estúpido que a Kibon dava;
  6. Usar as Havaianas para desenhar estradinhas na areia para os carros passarem, mesmo que essas estradinhas não tivessem sequer mão definida;
  7. Usar as Havaianas de “trave” de goleira;
  8. Andar de bicicleta;
  9. Pular “sapata” (amarelinha, e outras variações de nome as quais não conheço);
  10. Cavar buraco na praia só pelo prazer de achar a água lá embaixo;
  11. Deixar os outros de castigo na gangorra;
  12. Cutucar aqueles “tatuzinhos” (os animais, não os de nariz) pra ver eles virarem bolinha;
  13. Assoprar aquelas flores que se desmanchavam e soltavam todos aqueles “pára-quedistas” voando;
  14. Girar em torno do eixo vertical no balanço, só pra tontear;
  15. Fazer o mesmo acima, só que sem o balanço;
  16. Inundar formigueiro;
  17. Correr das formigas do formigueiro inundado;
  18. Fazer telefones de barbante e copos de iogurte;
  19. Usar caixas de fósforo vazias e cola, pra montar algum robô absurdo;
  20. Enterrar moedas, na esperança de encontrá-las – como quem encontra um tesouro – quando fôssemos adultos. Na ansiedade, desenterrávamos a moeda no mesmo dia.

Enfim, podia ficar “enumerando um sem-número” de coisas aqui. Mas vão só essas, pra ficar um gostinho. Quem mais aí se lembra de alguma outra coisa?

Novo domínio

29 Sep 2009 Postado em: Não categorizado

Para os que não sabem, este post é para informar que meu blog está sob novo domínio: http://blog.jeronimofagundes.com/
Este é meu novo domínio para tudo. E-mail e MSN agora são jeronimo@jeronimofagundes.com
E tenho dito.

Este post é um falso magro

9 Sep 2009 Postado em: Design, Fotografia, Pessoal, Tecnologia

Pra quem não sabe, estou fazendo um curso de especialização, de Designer Gráfico. Na semana passada e nessa, estamos vendo Photoshop.

Eu que não conhecia nada desses programas, estou aproveitando cada pequena coisa. E admirado com o que eles podem fazer. Admirado, e ao mesmo tempo assustado.

Com a incrível gama de ferramentas que o Photoshop tem, vejo o quão fácil é modificar uma foto e ainda assim mantê-la com uma aparência “não-fake”. Na aula, vimos um vídeo de um cara transformando uma mulher bastante gorda em uma deusa escultural. É fascinante e apavorante. Não acredito em mais nada que vejo em fotos, depois dessa.

Outra coisa é que o Photoshop serve para editar “imagens normais”, digo, não só fotos. Dá pra fazer um layout web nele. E fica muito bacana, e é extremamente fácil. Com os brushes, se adiciona efeitos visuais fantásticos, baixáveis da internet, customizáveis, realmente tudo muito fácil é agradável aos olhos. Pra mim, depois dessa, estão desmistificados os grandes mestres do design :P

Quando eu tiver concluído o curso e com mais tempo de sobra, pretendo desenhar eu mesmo um novo layout para este blog. Mas por enquanto, estou contente com esse.


As categorias

Jeronimo no Flickr

Small clouds

Cloudy

Panorama

Cloudy Panorama

More Photos