logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Mais libs C++, agora vindas do Google e da Adobe

O Google e a Adobe resolveram disponibilizar algumas de suas libs C++ sob licenças open source. As duas libs são compatíveis com STL, o que faz com elas possam ser facilmente integradas com a maioria das aplicações C++.

O Google disponibilizou projetos em diversas áreas, incluindo medição de performance e debug. Mas o que realmente me interessou foram os hash maps que eles fizeram. Eles são especializações (no sentido de funcionamento, não de polimorfismo) do std::map, e têm as mesmas assinaturas. Os mapas foram criados para terem vantagens em campos específicos quando comparados com o std::map. O sparse_hash_map, por exemplo, é um pouco mais lento do que o std::map, mas consome 1/3 de memória. O dense_hash_map consome 10% mais memória do que o std::map, mas é entre 5 e 10 vezes mais rápido! E como as funções são as mesmas do std::map, é fácil trocá-lo pelos mapas especializados de acordo com a necessidade, um typedef deve resolver. Dê uma olhada na página que compara a performance dos mapas, é muito interessante.

Já a Adobe disponibilizou uma biblioteca C++ razoávelmente grande. Podemos encontrar desde um mini framework para relacionamento entre entidades (descrição muito vaga, para mais detalhes veja a página do projeto) até alguns containers STL muito úteis ou interessantes (como um container forest). Tem também um template que encapsula variáveis de diversos tipos, o adobe::value_t - que é milhares de vezes mais seguro que um void pointer e "mais C++" do que um VARIANT. Com ele é possível ter um std::list que contém ao mesmo tempo strings, inteiros e tipos definidos pelo usuário.


Em 04/04/2005 21:51, por Rodrigo Strauss


  
 
 
Comentários
rebarba rebarba
  ::::