Mozilla prioriza melhorias no engine de JavaScript do Firefox

Após o grande esforço de finalização e lançamento do Firefox 4, a Mozilla voltou a planejar melhorias na área de JavaScript. Os principais focos são depuração e desempenho. Alguns pontos que merecem destaque são:
  • Nova API de depuração – As ferramentas de depuração do Firefox passarão a contar com um novo objeto, o Debug, que já está sendo especificado. Além disso, será possível realizar a depuração remota. Isso significa, por exemplo, depurar páginas em dispositivos móveis a partir de um computador comum.
  • Melhorias na desalocação de memória – O algoritmo de desalocação automática de memória (garbage collection) usado no Firefox suspende o processamento JavaScript durante a busca por objetos fora de uso. O tempo consumido nessa atividade (em torno de 100 ms, caso haja muitos objetos) se torna perceptível, por exemplo, em animações. Este é talvez o maior problema de desempenho do navegador atualmente. Para resolvê-lo, a ideia é desalocar memória com mais frequência, usando algoritmos mais sofisticados (ex.: coleta de lixo incremental e geracional).
  • Inferência de tipos e otimização de código – O componente do navegador que gera código nativo a partir de JavaScript será melhorado para identificar, sempre que possível, os tipos das variáveis através de análise estática de código. Isso poupará o tempo gasto com verificações de tipos durante a execução do programa. A nova versão do compilador (chamada IonMonkey) também usará essas informações sobre tipos para realizar otimizações de código que dependem delas.
O investimento em desempenho vai contribuir com a meta da Mozilla para o Firefox, de sempre responder a ações do usuário em no máximo 50 ms. Além das atividades relativas a JavaScript, existem ainda vários outros objetivos para 2011. Eles abrangem melhorias em acessibilidade, conexão, DOM, gráficos, vídeo e layout de páginas.

Tudo por causa de um System.exit( 0 )

 
Olá pessoal,
    Creio que todos que começam com java, se deparam primeiramente com a seguinte classe:
    public class HelloWorld{
         public static void main(String[] args) {
                 System.out.println(“Olá mundo”);
         }

    } 

   Recentemente precisei trabalhar com um componente que utiliza uma DLL do windows, quebrando a multiplataforma ;-(, daí que depois de ralar várias horas tentando descobrir como descarregar a dll do classloader, eis que consegui a resposta. Tudo estava em um simples método: System.Exit( 0 ). A grande questão é, afinal, o que é a classe System ? para que serve ?
   Bem, se olharmos a documentação padrão do java, veremos que esta classe é uma abstração a vários recursos muito uteis do Ambiente em que se esta executando a aplicação, como por exemplo:
  – Acesso a variaveis de ambiente
  – Acesso a saida padrão do console
  – Carregamento de bibliotecas nativas ( dll )
   
     Além é claro, de alguns outros recursos interessantes, como, recuperar a data atual do SO ou ainda 
Copiar um Array para outro.

    Vejam os trechos de código abaixo:

     ———Copiando um array pra outro———————————————-

        String[] arrayA = new String[]{“Joao”,”Maria”,”Fulano”};
        String[] arrayB = new String[ arrayA.length ];
        
        System.arraycopy( arrayA, 0, arrayB, 0, arrayA.length );
        
        for (String vlr : arrayB) {
            System.out.println( vlr );
        }

     ———————————————————————————–

     ———-Recuperando o valor de uma variável de ambiente———————–

        String vlr = System.getenv(“JAVA_HOME”);       
        System.out.println( vlr );

     ————————————————————————————

     ———–Recuperar importantes propriedades do ambiente de execução———-

        Properties props = System.getProperties();
       
        Set

> ent = props.entrySet();                 for (Entry entry : ent ) {                         System.out.println( entry.getKey() + ” = ” + entry.getValue() );                     }

  
      Obs: Bastante útil quando se deseja saber  a arquitetura do processador( 32 ou 64  bits ), ou ainda
o sistema operacional do usuário ( Windows, Linux, MacOS )

      ————————————————————————————–
    
      ———–Sugere a VM para chamar a Garbage Colector—————————

          System.gc(); 

          Obs:  Sugerir e bem diferente de mandar viu 😉 SCJP nessa horas faz toda a diferença.
      ————————————————————————————

     ————————-Carregar uma biblioteca nativa——————————
 
         System.loadLibrary(“suadll”);
 
     ————————————————————————————-

     ————Termina a execução da maquina virtual———————————-

          System.exit( 0 );
   
        Obs: Lembre-se disso quando passar por erros de DLL que precisam ser carregadas a cada execução,  principalmente em Applets(  Use no Stop method ), sofri alguns dias por causa desse bendito método.

    ————————————————————————————–

    Um grande abraço.