[gnome-devel-docs] Updated Brazilian Portuguese translation



commit a65f38c7e231e38741b59f61dde16d85f0c1b73a
Author: Enrico Nicoletto <enriconlto src gnome org>
Date:   Sun Dec 23 13:33:26 2012 -0200

    Updated Brazilian Portuguese translation

 optimization-guide/pt_BR/figures/massif-after.png  |  Bin 0 -> 17364 bytes
 optimization-guide/pt_BR/figures/massif-before.png |  Bin 0 -> 16261 bytes
 optimization-guide/pt_BR/pt_BR.po                  |  592 ++++++++++++++++++++
 3 files changed, 592 insertions(+), 0 deletions(-)
---
diff --git a/optimization-guide/pt_BR/figures/massif-after.png b/optimization-guide/pt_BR/figures/massif-after.png
new file mode 100644
index 0000000..7556b72
Binary files /dev/null and b/optimization-guide/pt_BR/figures/massif-after.png differ
diff --git a/optimization-guide/pt_BR/figures/massif-before.png b/optimization-guide/pt_BR/figures/massif-before.png
new file mode 100644
index 0000000..560e06c
Binary files /dev/null and b/optimization-guide/pt_BR/figures/massif-before.png differ
diff --git a/optimization-guide/pt_BR/pt_BR.po b/optimization-guide/pt_BR/pt_BR.po
new file mode 100644
index 0000000..fe740ce
--- /dev/null
+++ b/optimization-guide/pt_BR/pt_BR.po
@@ -0,0 +1,592 @@
+# Brazilian Portuguese translation for gnome-devel-docs.
+# Copyright (C) 2010 gnome-devel-docs's COPYRIGHT HOLDER
+# This file is distributed under the same license as the gnome-devel-docs package.
+# Enrico Nicoletto <liverig gmail com>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnome-devel-docs master\n"
+"POT-Creation-Date: 2010-04-17 19:42+0000\n"
+"PO-Revision-Date: 2012-12-23 13:02-0300\n"
+"Last-Translator: Enrico Nicoletto <liverig gmail com>\n"
+"Language-Team: Brazilian Portuguese <gnome-pt_br-list gnome org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: C/optimization-intro.xml:3(title)
+msgid "The Quick Guide to Optimizing GNOME Programs"
+msgstr "O guia rÃpido para otimizar programas do GNOME"
+
+#: C/optimization-intro.xml:5(para)
+msgid "This is a brief introduction to optimization, both the hows and the whys. Details of individual tools and techniques are left for later articles, but a collection of hints and tricks is provided."
+msgstr "Esta à uma breve introduÃÃo para o processo de otimizaÃÃo, tanto os \"comos\" quanto os \"porquÃs\". Detalhes de ferramentas individuais e tÃcnicas foram deixadas para artigos posteriores, mas uma coleÃÃo de dicas e truques sÃo oferecidos."
+
+#: C/optimization-intro.xml:10(title)
+msgid "What are we Optimizing?"
+msgstr "O que estamos otimizando?"
+
+#: C/optimization-intro.xml:11(para)
+msgid "When we optimize for GNOME the first thing to remember is this: we are not trying to make the program better, we are trying to make the person using the computer happier."
+msgstr "Quando otimizamos um software GNOME a primeira coisa que devemos lembrar à isto: nÃo estamos tentando fazer o programa melhor, nÃs estamos tentando fazer a pessoa que està usando o computador mais feliz."
+
+#: C/optimization-intro.xml:14(para)
+msgid "Better programs make people happier, but there are some improvements that will make them a lot happier than others: Responsiveness, start-up time, easy to access commands and not having the computer go into swap the moment more than two programs are open."
+msgstr "Melhores programas deixam as pessoas mais felizes, entretanto hà alguns aperfeiÃoamentos que irÃo deixÃ-los muito mais felizes que outros: capacidade de resposta, tempo de inicializaÃÃo, comandos de fÃcil acesso e nÃo ter o computador entrando na memÃria de troca (swap) a cada momento que mais de dois programas sÃo abertos."
+
+#: C/optimization-intro.xml:17(para)
+msgid "Traditional optimization tackles concepts like CPU use, code size, the number of mouse clicks and the memory use of the program. This second list has been chosen to correlate with the first list, however there is an important difference: The person using GNOME doesn't care about the second list, but they care a lot about the first list. When optimizing GNOME programs we will reduce CPU use, memory use and all those things, but these are the means to the end, not the final goal. We are optimizing for people."
+msgstr "A otimizaÃÃo tradicional aborda conceitos como utilizaÃÃo de CPU, tamanho do cÃdigo, o nÃmero de cliques do mouse e a utilizaÃÃo de memÃria de um programa. Esta segunda lista foi escolhida para corresponder-se com a primeira, entretanto hà uma importante diferenÃa: A pessoa que estiver utilizando o GNOME nÃo liga para a segunda lista, mas eles se importam muito com a primeira. Quando estivermos otimizando programas GNOME nÃs iremos reduzir a utilizaÃÃo da CPU, o uso de memÃria e todas estas coisas, mas este à o meio para o fim, nÃo o objetivo final. NÃs estamos otimizando para pessoas."
+
+#: C/optimization-intro.xml:23(title)
+msgid "Doing the Optimization"
+msgstr "Realizando a otimizaÃÃo"
+
+#: C/optimization-intro.xml:24(para)
+msgid "The previous section omitted one important qualifier: To optimize something it has to be measurable. You can't measure happiness. However, you can measure start-up time so you can tell if you have improved it. Happiness will then, hopefully, follow."
+msgstr "A seÃÃo anterior omitiu um importante qualificador: Para otimizar alguma coisa, esta precisa ser mensurÃvel. Vocà nÃo pode mensurar a felicidade. Contudo, vocà pode medir o tempo de inicializaÃÃo de um programa, deste modo vocà pode dizer se vocà o melhorou. Assim espero que a felicidade, entÃo, o siga."
+
+#: C/optimization-intro.xml:27(para)
+msgid "Optimization is the process of measurement, refinement and re-measurement. So the first thing you must do is find a way to measure what you are optimizing. Ideally this measurement is a single number, for example: the time taken to perform a task. This is your benchmark, it is the only way to tell if you are winning or losing. There is a big difference between a program that <emphasis>should</emphasis> be fast and a program that <emphasis>is</emphasis> fast."
+msgstr "OtimizaÃÃo à o processo de mediÃÃo, refinamento e de nova mediÃÃo. EntÃo a primeira coisa que vocà deve fazer à encontrar um meio de medir o que vocà està otimizando. O ideal à que esta mediÃÃo seja um nÃmero Ãnico, por exemplo: o tempo gasto para executar uma tarefa. Esta à a sua avaliaÃÃo de desempenho (benchmark), à a Ãnica forma de dizer se vocà està ganhando ou perdendo. Hà uma grande diferenÃa entre um programa que <emphasis>deveria</emphasis> ser rÃpido e um programa que <emphasis>Ã</emphasis> rÃpido."
+
+# Profiler: utilitÃrio que monitora o tempo gasto em cada trecho de cÃdigo.
+#: C/optimization-intro.xml:30(para)
+msgid "Once you have a basic benchmark you need to find out why your code is not doing as well as it should. It is tempting to do this by inspection: just looking at the code and trying to spot something that looks like it needs improvement. You will invariably be wrong. Using a profiler to get a detailed break-down of what your program really does is the only way to be sure."
+msgstr "Uma vez que vocà possua uma avaliaÃÃo de desempenho bÃsica, vocà precisarà descobrir por que seu cÃdigo nÃo està funcionando tÃo bem quanto deveria. à tentador fazer isto por inspeÃÃo: apenas olhando o cÃdigo-fonte e tentando encontrar algum ponto que parece necessitar melhoria. Desta maneira vocà invariÃvelmente estarà errado. Utilizar um perfilador (profiler) para obter uma lista detalhada do que o seu aplicativo realmente faz à o Ãnico modo de se ter certeza."
+
+#: C/optimization-intro.xml:33(para)
+msgid "Usually the problem is isolated to small sections of code. Pick the worst place and concentrate on that first. Once that is done, rerun the profiler and repeat. As you proceed the gains made at each step will get less and less, at some point you will have to decide that the results are good enough. If your efforts are only extracting 10% improvements then you are well past the point where you should have stopped."
+msgstr "Geralmente o problema à isolado a pequenas seÃÃes do cÃdigo. Primeiro escolha o pior local e se concentre nisso. Uma vez terminado, execute novamente o perfilador (profiler) e repita. à medida que vocà prossegue os ganhos realizados a cada etapa vÃo se tornando cada vez menores, atà que em certo ponto vocà terà que decidir se os resultados sÃo bons o bastante. Se os seus esforÃos estÃo apenas extraindo 10% de melhorias, entÃo vocà està bem alÃm do ponto do qual deveria ter parado."
+
+#: C/optimization-intro.xml:36(para)
+msgid "Don't forget the big picture. For example, rather than just trying to speed up a piece of code, ask yourself if it needs to be run at all. Could it be combined with another piece of code? Can the results of previous calculations be saved and reused? It won't even need to be optimized if it is in a place where the user is never going to notice it. Worse still, the code may already be optimized and is doing the heavy calculations now to avoid doing them later. Code does not run in isolation and neither does the optimization process."
+msgstr "NÃo se esqueÃa do todo, da perspectiva global. Por exemplo, ao invÃs de simplesmente tentar acelerar um trecho do cÃdigo, pergunte a vocà mesmo se ele precisa ser executado completamente. Ele pode ser combinado com outro trecho de cÃdigo? Os resultados de cÃlculos anteriores podem ser salvos e re-utilizados? Ele sequer precisa ser otimizado se estiver em um local onde o usuÃrio nunca irà percebÃ-lo. Pior ainda, o cÃdigo jà pode estar otimizado e agora estar realizando cÃlculos pesados para evitar fazÃ-los novamente mais tarde. O cÃdigo nÃo à executado isoladamente, quanto menos o processo de otimizaÃÃo."
+
+#: C/optimization-intro.xml:41(title)
+msgid "Hints"
+msgstr "Dicas"
+
+#: C/optimization-intro.xml:43(title)
+msgid "The Fundamentals"
+msgstr "Os fundamentos"
+
+#: C/optimization-intro.xml:45(para)
+msgid "Re-run your benchmark after every change you make to the code and keep a log of everything you change and how it affects the benchmark. This lets you undo mistakes and also helps you not to repeat mistakes."
+msgstr "Execute novamente a sua avaliaÃÃo de desempenho depois de cada mudanÃa que vocà tenha realizado no cÃdigo-fonte e mantenha um registro de tudo que vocà tenha alterado e como isto afeta a avaliaÃÃo de desempenho. Isto permite que vocà desfaÃa erros e tambÃm o ajuda a nÃo repetir erros."
+
+#: C/optimization-intro.xml:50(para)
+msgid "Make sure your code is correct and bug-free before optimizing it. Check that it remains correct and bug-free after optimization."
+msgstr "Certifique-se de que seu cÃdigo-fonte està correto e livre de erros antes de otimizÃ-lo. Verifique ainda se ele permanece correto e livre de erros apÃs a otimizaÃÃo."
+
+#: C/optimization-intro.xml:55(para)
+msgid "Optimize at the high level before optimizing the details."
+msgstr "Otimize o nÃvel mais alto antes de otimizar os detalhes."
+
+#: C/optimization-intro.xml:60(para)
+msgid "Use the right algorithm. The classic text-book example is using quick-sort instead of bubble-sort. There are many others, some save memory, some save CPU. Also, see what shortcuts you can make: you can do quicker than quick-sort if you are prepared to make some compromises."
+msgstr "Utilize o algoritmo correto. O exemplo clÃssico dos livros de texto à utilizar quick-sort ao invÃs de bubble-sort. Hà muitos outros, alguns economizam memÃria, alguns poupam a CPU. Ademais, visualize quais atalhos vocà pode tomar: vocà pode fazer mais rÃpido que ordenaÃÃo-rÃpida (quick-sort) se estiver preparado para fazer algumas concessÃes."
+
+#: C/optimization-intro.xml:65(para)
+msgid "Optimization is a trade-off. Caching results speeds up calculations, but increases memory use. Saving data to disk saves memory, but costs time when it is loaded back from disk."
+msgstr "OtimizaÃÃo à um dilema. Armazenar em cache os resultados aceleram os cÃlculos, mas aumentam a utilizaÃÃo de memÃria. Salvar os dados em disco economiza a memÃria, mas custa tempo para carregar de volta a partir do disco."
+
+#: C/optimization-intro.xml:70(para)
+msgid "Make sure you choose a wide variety of inputs to optimize against. If you don't it is easy to end up with a piece of code carefully optimized for one file and no others."
+msgstr "Certifique-se de que vocà escolheu uma ampla variedade de entradas em relaÃÃo a otimizaÃÃo. Se vocà nÃo escolheu, à fÃcil terminar com uma parte do cÃdigo cuidadosamente otimizada para um arquivo e nÃo para outros."
+
+#: C/optimization-intro.xml:75(para)
+msgid "Avoid expensive operations: Multiple small disk reads. Using up lots of memory so disk swapping becomes necessary. Avoid anything that writes or reads from the hard disk unnecessarily. The network is slow too. Also avoid graphics operations that need a response from the X server."
+msgstr "Evite operaÃÃes que custam muito: muitas leituras pequenas em disco. Utilizar muitas porÃÃes de memÃria acarretando que o swap de disco torne-se necessÃrio; Evite qualquer coisa que escreva ou leia a partir do disco rÃgido desnecessariamente; A rede tambÃm à lenta; Evite tambÃm operaÃÃes grÃficas que precisem de uma resposta do servidor X."
+
+#: C/optimization-intro.xml:81(title)
+msgid "Traps for the Unwary"
+msgstr "Armadilhas para os descuidados"
+
+#: C/optimization-intro.xml:83(para)
+msgid "Beware of side effects. There can often be strange interactions between different sections of code, a speed-up in one part can slow another part down."
+msgstr "Cuidado com os efeitos colaterais. Muitas vezes podem ocorrer interaÃÃes estranhas entre diferentes trechos do cÃdigo, uma aceleraÃÃo em uma parte pode desacelerar outra parte."
+
+#: C/optimization-intro.xml:88(para)
+msgid "When timing code, even on a quiet system, events outside the program add noise to the timing results. Average over multiple runs. If the code is very short, timer resolution is also a problem. In this case measure the time the computer takes to run the code 100 or 1000 times. If the times you are recording are longer than a few seconds, you should be OK."
+msgstr "Ao cronometrar o cÃdigo, mesmo em um sistema silencioso, eventos fora do programa acrescentam ruÃdo aos resultados de tempo. FaÃa a mÃdia a partir de mÃltiplas execuÃÃes. Se o cÃdigo à bem pequeno, a resoluÃÃo do temporizador tambÃm à um problema. Neste caso, meÃa o tempo que o computador leva para executar o cÃdigo 100 ou 1000 vezes. Se o tempo que vocà està registrando à maior que alguns segundos, vocà deve estar correto."
+
+#: C/optimization-intro.xml:93(para)
+msgid "It is very easy to be misled by the profiler. There are stories of people optimizing the operating system idle-loop because that is where it spent all its time! Don't optimize code that does nothing the user cares about."
+msgstr "à muito fÃcil ser iludido pelo perfilador (profiler). Existem histÃrias de pessoas otimizando o loop ocioso do sistema operacional porque à o local onde se à gasto todo o tempo! NÃo otimize cÃdigo que nÃo à relevante para o usuÃrio."
+
+#: C/optimization-intro.xml:98(para)
+msgid "Remember the resources on the X server. Your program's memory usage doesn't include the pixmaps that are stored in the X server's process, but they are still using up memory. Use xrestop to see what resources your program is using."
+msgstr "Lembre-se dos recursos no servidor X. A utilizaÃÃo de memÃria do seu programa nÃo inclui os pixmaps que estÃo armazenados no processo do servidor X, mas eles ainda estÃo utilizando memÃria. Utilize xrestop para verificar quais recursos seu programa està utilizando."
+
+#: C/optimization-intro.xml:104(title)
+msgid "Low Level Hints"
+msgstr "Dicas de baixo nÃvel"
+
+#: C/optimization-intro.xml:106(para)
+msgid "When optimizing memory use, be wary of the difference between peak usage and average memory usage. Some memory is almost always allocated, this is usually bad. Some is only briefly allocated, this may be quite acceptable. Tools like massif use the concept of space-time, the product of memory used and the duration it was allocated for, instead."
+msgstr "Ao otimizar utilizaÃÃo de memÃria, seja cauteloso em relaÃÃo a diferenÃa entre o pico de utilizaÃÃo e o uso mÃdio de memÃria. Se uma porÃÃo de memÃria està sempre alocada, isto geralmente à ruim. Caso seja apenas brevemente alocada, entÃo isto pode ser bem aceitÃvel. Ferramentas como massif utilizam o conceito de espaÃo-tempo, o produto da memÃria utilizada e a duraÃÃo a qual ela foi alocada para isso."
+
+#: C/optimization-intro.xml:111(para)
+msgid "Time simplified bits of code that do only the things you know are essential, this gives an absolute lower limit on the time your code will take. For example, when optimizing a loop time the empty loop. If that is still too long no amount of micro-optimization will help and you will have to change your design. Make sure the compiler doesn't optimize away your empty loop."
+msgstr "Cronometre pedaÃos simples de cÃdigo que apenas fazem coisas que vocà sabe que sÃo necessÃrias, isto oferece um menor limite absoluto sobre o tempo que seu cÃdigo irà ter. Por exemplo: ao otimizar um loop, cronometre o loop vazio. Caso isto ainda leve muito tempo, nenhum montante de pequenas otimizaÃÃes irà ajudar e vocà precisarà alterar sua anÃlise de projeto. Certifique-se de que o compilador nÃo piora seu loop vazio."
+
+#: C/optimization-intro.xml:116(para)
+msgid "Move code out from inside loops. A slightly more complicated piece of code that is executed once is far quicker than a simple piece of code executed a thousand times. Avoid calling slow code often."
+msgstr "Mova o cÃdigo para fora de loops internos. Um pedaÃo de cÃdigo levemente mais complicado que à executado uma vez à mais rÃpido que um trecho de cÃdigo simples executado mil vezes. Evite chamar cÃdigos lentos com frequÃncia."
+
+#: C/optimization-intro.xml:121(para)
+msgid "Give the compiler as many hints as possible. Use the const keyword. Use <envar>G_INLINE_FUNC</envar> for short, frequently called, functions. Look up <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> and the other glib miscellaneous macros. Use the macros instead of gcc-specific keywords to ensure portability."
+msgstr "ForneÃa ao compilador a maior quantidade de dicas possÃvel. Utilize a palavra-chave \"const\". Para pequenas funÃÃes, que sÃo frequentemente chamadas, utilize <envar>G_INLINE_FUNC</envar>. Consulte <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> e as outras diversas macros do glib. Para garantir portabilidade, utilize as macros ao invÃs das palavras-chave especÃficas do gcc."
+
+#: C/optimization-intro.xml:126(para)
+msgid "Don't use assembly language. It is not portable and, while it may be fast on one processor, it is not even guaranteed to be fast on every processor that supports that architecture (e.g. Athlon vs. Pentium 4)."
+msgstr "NÃo utilize linguagem Assembly. Ela nÃo à portÃvel e, enquanto pode ser rÃpido em um processador, nem sempre à garantido que serà rÃpido em cada processador que suporte aquela arquitetura (ex: Athlon versus Pentium 4)."
+
+#: C/optimization-intro.xml:131(para)
+msgid "Don't rewrite an existing library routine unless you are sure it is unnecessarily slow. Many CPU-intensive library routines have already been optimized. Conversely, some library routines are slow, especially ones that make system calls to the operating system."
+msgstr "NÃo sobrescreva uma rotina jà existente de uma biblioteca a menos que vocà tenha certeza que ela à desnecessariamente lenta. Muitas rotinas de biblioteca que fazem uso intensivo de CPU jà foram otimizadas. Em contrapartida algumas rotinas de bibliotecas sÃo lentas, especialmente as que realizam chamadas de sistema ao sistema operacional."
+
+#: C/optimization-intro.xml:136(para)
+msgid "Minimize the number of libraries you link to. The fewer libraries to link in, the faster the program starts. This is a difficult thing to do with GNOME."
+msgstr "Reduza o nÃmero de bibliotecas as quais vocà se referencia. Quanto menos bibliotecas forem referenciadas, mais rÃpido o programa se iniciarÃ. Isto à uma coisa difÃcil de se fazer no GNOME."
+
+#: C/optimization-intro.xml:142(title)
+msgid "High Level Tricks"
+msgstr "Truques de alto nÃvel"
+
+#: C/optimization-intro.xml:144(para)
+msgid "Take advantage of concurrency. This doesn't just mean using multiple processors, it also means taking advantage of the time the user spends thinking about what they are going to do next to perform some calculations in anticipation. Do calculations while waiting for data to be loaded off disk. Take advantage of multiple resources, use them all at once."
+msgstr "Tire vantagem da concorrÃncia. Isto nÃo significa apenas utilizar mÃltiplos processadores, isto tambÃm significa aproveitar do tempo que o usuÃrio gasta pensando sobre o que ele irà fazer depois, para executar alguns cÃlculos antecipadamente. FaÃa cÃlculos enquanto espera por dados a serem carregados para fora do disco. Tire proveito dos muitos recursos, use todos eles ao mesmo tempo."
+
+#: C/optimization-intro.xml:149(para)
+msgid "Cheat. The user only has to think that the computer is fast, it doesn't matter whether it actually is or not. It is the time between the command and the answer that is important, it doesn't matter if the response is pre-calculated, cached, or will in fact be worked out later at a more convenient time, as long as the user gets what they expect."
+msgstr "Iluda. O usuÃrio apenas precisa pensar que o computador à rÃpido, nÃo importa se ele realmente à ou nÃo. O importante à o tempo entre o comando e a resposta, nÃo interessa se a resposta foi calculada antecipadamente, utilizado cache, ou serà de fato trabalhada mais tarde em um tempo mais conveniente, contanto que o usuÃrio obtenha o que espera."
+
+#: C/optimization-intro.xml:154(para)
+msgid "Do things in the idle loop. It is easier to program than using full multi-threading but still gets things done out of the users eye. Be careful though, if you spend too long in the idle loop your program will become sluggish. So regularly give control back to the main loop."
+msgstr "FaÃa coisas no loop ocioso. Isto à mais fÃcil de programar do que utilizar mÃltiplas threads completas mas ainda assim resolvem as coisas fora da vista dos usuÃrios. Entretanto seja cuidadoso, se vocà perder muito tempo no loop ocioso seu programa se tornarà lento. EntÃo regularmente ofereÃa o controle de volta ao loop principal."
+
+#: C/optimization-intro.xml:159(para)
+msgid "If all else fails, tell the user that the code is going to be slow and put up a progress bar. They won't be as happy as if you had just presented the results, but they will at least know the program hasn't crashed and they can go get a cup of coffee."
+msgstr "Se tudo isso falhar, diga ao usuÃrio que o cÃdigo vai tornar-se lento e coloque uma barra de progresso. Eles nÃo vÃo ficar tÃo felizes quanto se vocà tivesse apenas apresentado os resultados, porÃm pelo menos eles saberÃo que o programa nÃo travou, eles podem ir buscar um copo de cafÃ."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/optimization-massif.xml:52(None)
+msgid "@@image: 'figures/massif-before.png'; md5=1a6b2ace548e6789ab8bfacb3727b345"
+msgstr "@@image: 'figures/massif-before.png'; md5=9619664b823f195ef9227e3d8bb051b1"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/optimization-massif.xml:114(None)
+msgid "@@image: 'figures/massif-after.png'; md5=36d1b4ad7ab49b28b69ad3eabbaa7069"
+msgstr "@@image: 'figures/massif-after.png'; md5=a91df704217641ea8fa93d90031121bd"
+
+#: C/optimization-massif.xml:3(title)
+msgid "Using <application>Massif</application> for Profiling Memory Use in GNOME Software"
+msgstr "Utilizando <application>Massif</application> para perfilar utilizaÃÃo de memÃria em software GNOME"
+
+#: C/optimization-massif.xml:5(para)
+msgid "This article describes how to use the <application>Massif</application> heap profiler with GNOME applications. We describe how to invoke, interpret, and act on the output of <application>Massif</application>. The <application>Same GNOME</application> game is used as an example."
+msgstr "Este artigo descreve como utilizar o perfilador (profiler) de heap <application>Massif</application> com aplicativos GNOME. NÃs descrevemos como invocar, interpretar, e agir sobre a saÃda do <application>Massif</application>. O jogo <application>Same GNOME</application> Ã utilizado como exemplo."
+
+#: C/optimization-massif.xml:10(title)
+msgid "Introduction"
+msgstr "IntroduÃÃo"
+
+#: C/optimization-massif.xml:11(para)
+msgid "<application>Massif</application> is a member of the <ulink type=\"http\" url=\"http://valgrind.org/\";>valgrind</ulink> suite of memory-profiling tools. Its purpose is to give a detailed view of dynamic memory usage during the lifetime of the program. Specifically it records the memory use of the heap and the stack."
+msgstr "<application>Massif</application> à um membro da suÃte de ferramentas de perfilaÃÃo de memÃria <ulink type=\"http\" url=\"http://valgrind.org/\";>valgrind</ulink>. Seu propÃsito à fornecer uma visÃo detalhada da utilizaÃÃo de memÃria dinÃmica durante o tempo de vida do programa. Especificamente, ele grava a utilizaÃÃo de heap e de stack (pilha) da memÃria."
+
+#: C/optimization-massif.xml:14(para)
+msgid "The heap is the region of memory which is allocated with functions like malloc. It grows on demand and is usually the largest region of memory in a program. The stack is where all the local data for functions is stored. This includes the \"automatic\" variables in C and the return address for subroutines. The stack is typically a lot smaller and a lot more active than the heap. We won't consider the stack explicitly since <application>Massif</application> treats it as though it were just another part of the heap. <application>Massif</application> also gives information about how much memory is used to manage the heap."
+msgstr "O heap à a regiÃo da memÃria que à alocada com funÃÃes como malloc. Ele cresce por demanda e geralmente à a maior regiÃo de memÃria em um programa. A pilha (stack) à onde sÃo armazenados todos os dados locais para as funÃÃes. Isto inclui as variÃveis \"automÃticas\" em C e os endereÃos de retorno para as subrotinas. A pilha à tipicamente bem menor e muito mais ativa que o heap. NÃs nÃo vamos considerar explicitamente como pilha jà que o <application>Massif</application> o trata como se fosse apenas outra parte do heap. <application>Massif</application> tambÃm fornece informaÃÃes sobre quanta memÃria à utilizada para gerenciar o heap."
+
+#: C/optimization-massif.xml:17(para)
+msgid "<application>Massif</application> produces two output files: a graphical overview in a postscript file and a detailed breakdown in a text file."
+msgstr "O <application>Massif</application> produz dois arquivos de saÃda: um resumo grÃfico em um arquivo postscript e uma discriminaÃÃo detalhada em um arquivo de texto."
+
+#: C/optimization-massif.xml:22(title)
+msgid "Using <application>Massif</application> with GNOME"
+msgstr "Utiliizando o <application>Massif</application> com o GNOME"
+
+#: C/optimization-massif.xml:23(para)
+msgid "<application>Massif</application> has very few options and for many programs does not need them. However for GNOME applications, where memory allocation might be buried deep in either glib or GTK, the number of levels down the call-stack Massif descends needs to be increased. This is achieved using the --depth parameter. By default this is 3; increasing it to 5 will guarantee the call-stack reaches down to your code. One or two more levels may also be desirable to provide your code with some context. Since the level of detail becomes quickly overwhelming it is best to start with the smaller depth parameter and only increase it when it becomes apparent that it isn't sufficient."
+msgstr "<application>Massif</application> possui muitas poucas opÃÃes e para muitos programas elas nÃo sÃo necessÃrias. Entretanto para aplicativos GNOME, onde a alocaÃÃo de memÃria pode estar enterrada nas profundezas do glib ou GTK, os descendentes do Massif precisam ser aumentados a medida que o nÃmero de nÃveis da pilha de chamadas abaixam. Isto à alcanÃado usando o parÃmetro --depth. Por padrÃo, este valor à 3; aumentando ele para 5 irà garantir que a pilha de chamadas atinja o seu cÃdigo. Mais um ou dois nÃveis podem ser convenientes para fornecer algum contexto ao seu cÃdigo. Uma vez que o nÃvel de detalhamento se torna rapidamente sobrecarregado, à melhor iniciar com o parÃmetro de menor profundidade (depth) e apenas aumentÃ-lo quando se torna aparente que isto nÃo à suficiente."
+
+#: C/optimization-massif.xml:26(para)
+msgid "It is also useful to tell <application>Massif</application> which functions allocate memory in glib. It removes an unnecessary layer of function calls from the reports and gives you a clearer idea of what code is allocating memory. The allocating functions in glib are g_malloc, g_malloc0, g_realloc, g_try_malloc, and g_mem_chunk_alloc. You use the --alloc-fn option to tell Masiff about them."
+msgstr "TambÃm à Ãtil avisar o <application>Massif</application> quais funÃÃes alocam memÃria no glib. Isto remove uma camada desnecessÃria de chamadas de funÃÃo dos relatÃrios e oferece a vocà uma idÃia mais clara de qual cÃdigo està alocando memÃria. As funÃÃes de alocaÃÃo do glib sÃo: g_malloc, g_malloc0, g_realloc, g_try_malloc e g_mem_chunk_alloc. Vocà utiliza a opÃÃo --alloc-fn para contar ao Masiff sobre elas."
+
+#: C/optimization-massif.xml:29(para)
+msgid "Your command-line should therefore look something like:"
+msgstr "A partir de agora, sua linha de comando deve parecer como algo assim:"
+
+#: C/optimization-massif.xml:32(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"valgrind --tool=massif --depth=5  --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc \\\n"
+"         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc same-gnome\n"
+"        "
+msgstr ""
+"\n"
+"valgrind --tool=massif --depth=5  --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc \\\n"
+"         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc same-gnome\n"
+"        "
+
+#: C/optimization-massif.xml:36(para)
+msgid "<application>Same GNOME</application> is the program we will be using as an example. Be warned that, since valgrind emulates the CPU, it will run <emphasis>very</emphasis> slowly. You will also need a lot of memory."
+msgstr "<application>Same GNOME</application> à o programa que estaremos utilizando como exemplo. Esteja avisado de quÃ, uma vez que valgrind emula a CPU, ele irà rodar <emphasis>muito</emphasis> lentamente. Vocà precisarà tambÃm de muita memÃria."
+
+#: C/optimization-massif.xml:41(title)
+msgid "Interpreting the Results"
+msgstr "Interpretando os resultados"
+
+#: C/optimization-massif.xml:42(para)
+msgid "The graphical output of <application>Massif</application> is largely self explanatory. Each band represents the memory allocated by one function over time. Once you identify which bands are using the most memory, usually the big thick ones at the top you will have to consult the text file for the details."
+msgstr "A saÃda grÃfica do <application>Massif</application> à amplamente auto-explicativa. Cada faixa representa a memÃria alocada para uma funÃÃo em relaÃÃo ao tempo. Uma vez que vocà identifique quais faixas estÃo usando a maior parte da memÃria, geralmente a mais espessa ao topo, vocà terà de consultar o arquivo de texto para os detalhes."
+
+#: C/optimization-massif.xml:45(para)
+msgid "The text file is arranged as a hierarchy of sections, at the top is a list of the worst memory users arranged in order of decreasing spacetime. Below this are further sections, each breaking the results down into finer detail as you proceed down the call-stack. To illustrate this we will use the output of the command above."
+msgstr "O arquivo de texto à organizado em hierarquia de seÃÃes, ao topo hà uma lista dos piores usuÃrios de memÃria dispostos em espaÃo-tempo decrescente. Abaixo disso hà mais seÃÃes, cada qual decompondo os resultados em detalhes mais sutis a medida que vocà prossegue para a porÃÃo inferior da pilha de chamadas. Para esclarecer isto, nÃs utilizaremos a saÃda do comando supra-citado."
+
+#: C/optimization-massif.xml:49(title)
+msgid "<application>Massif</application> output for the unoptimized version of the <application>Same GNOME</application> program."
+msgstr "SaÃda do <application>Massif</application> para a versÃo nÃo otimizada do programa <application>Same GNOME</application>."
+
+#: C/optimization-massif.xml:56(para)
+msgid "<xref linkend=\"optimization-massif-FIG-output-unoptimized\"/> shows a typical postscript output from <application>Massif</application>. This is the result you would get from playing a single game of <application>Same GNOME</application> (version 2.8.0) and then quitting. The postscript file will have a name like <filename>massif.12345.ps</filename> and the text file will be called <filename>massif.12345.txt</filename>. The number in the middle is the process ID of the program that was examined. If you actually try this example you will find two versions of each file, with slightly different numbers, this is because <application>Same GNOME</application> starts a second process and <application>Massif</application> follows that too. We will ignore this second process, it consumes very little memory."
+msgstr "<xref linkend=\"optimization-massif-FIG-output-unoptimized\"/> mostra uma saÃda postscript tÃpica do <application>Massif</application>. Este à o resultado que vocà obteria ao jogar um Ãnico jogo do <application>Same GNOME</application> (versÃo 2.8.0) e depois saindo. O arquivo postscript terà um nome como <filename>massif.12345.ps</filename> e o arquivo de texto serà chamado <filename>massif.12345.txt</filename>. O nÃmero ao meio à o ID do processo do programa que foi examinado. Se vocà realmente tentar realizar este exemplo, vocà encontrarà duas versÃes para cada arquivo com nÃmeros levemente diferentes, devido o <application>Same GNOME</application> iniciar um segundo processo e o <application>Massif</application> o seguir tambÃm. NÃs iremos ignorar este segundo processo, ele consome muito pouca memÃria."
+
+#: C/optimization-massif.xml:59(para)
+msgid "At the top of the graph we see a large yellow band labelled gdk_pixbuf_new. This seems like an ideal candidate for optimization, but we will need to use the text file to find out what is calling gdk_pixbuf_new. The top of the text file will look something like this:"
+msgstr "Ao topo do grÃfico, nÃs vemos uma ampla faixa amarela rotulada gdk_pixbuf_new. Ela parece ser uma candidata ideal para otimizaÃÃo, mas nÃs iremos precisar utilizar o arquivo de texto para descobrir o que està chamando gdk_pixbuf_new. O topo do arquivo de texto irà se parecer como algo assim:"
+
+#: C/optimization-massif.xml:62(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"Command: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 90.4% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"  28.8% : 0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"    6.1% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    5.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    3.5% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+msgstr ""
+"\n"
+"Comando: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 90.4% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"  28.8% : 0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"    6.1% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    5.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    3.5% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+
+#: C/optimization-massif.xml:77(para)
+msgid "The line with the '=' signs indicates how far down the stack trace we are, in this case we are at the top. After this it lists the heaviest users of memory in order of decreasing spacetime. Spacetime is the product of the amount of memory used and how long it was used for. It corresponds to the area of the bands in the graph. This part of the file tells us what we already know: most of the spacetime is dedicated to gdk_pixbuf_new. To find out what called gdk_pixbuf_new we need to search further down the text file:"
+msgstr "A linha com o sinal de '=' indica a que distÃncia abaixo do rastreamento da pilha estamos, neste caso estamos ao topo. ApÃis isto, sÃo listados os usuÃrios de memÃria mais pesados em ordem decrescente em relaÃÃo ao tempo. O espaÃo-tempo à o produto da quantidade de memÃria utilizada e por quanto tempo ela foi utilizada. Isto corresponde a Ãrea das faixas no grÃfico. Esta parte do arquivo nos conta o que jà sabÃamos: a maior parte do espaÃo-tempo à decicado ao gdk_pixbuf_new. Para descobrir o que chamou o gdk_pixbuf_new nÃs precisamos pesquisar, logo abaixo, o arquivo de texto:"
+
+#: C/optimization-massif.xml:80(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"== 4 ===========================\n"
+"Context accounted for 28.8% of measured spacetime\n"
+"  0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x3A998998: (within /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
+"  0x6C2760: (within /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x6C285E: gdk_pixbuf_new_from_file (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"Called from:\n"
+"  27.8% : 0x804C1A3: load_scenario (same-gnome.c:463)\n"
+"\n"
+"    0.9% : 0x3E8095E: (within /usr/lib/libgnomeui-2.so.0.792.0)\n"
+"\n"
+"  and 1 other insignificant place\n"
+"        "
+msgstr ""
+"\n"
+"== 4 ===========================\n"
+"Context accounted for 28.8% of measured spacetime\n"
+"  0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x3A998998: (within /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
+"  0x6C2760: (within /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x6C285E: gdk_pixbuf_new_from_file (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"Called from:\n"
+"  27.8% : 0x804C1A3: load_scenario (same-gnome.c:463)\n"
+"\n"
+"    0.9% : 0x3E8095E: (within /usr/lib/libgnomeui-2.so.0.792.0)\n"
+"\n"
+"  and 1 other insignificant place\n"
+"        "
+
+#: C/optimization-massif.xml:95(para)
+msgid "The first line tells us we are now four levels deep into the stack. Below it is a listing of the function calls that leads from here to gdk_pixbuf_new. Finally there is a list of functions that are at the next level down and call these functions. There are, of course, also entries for levels 1, 2, and 3, but this is the first level to reach right down through the GDK code to the <application>Same GNOME</application> code. From this listing, we can see instantly that the problem code is load_scenario."
+msgstr "A primeira linha nos conta que agora estamos quatro nÃveis dentro da pilha. Abaixo hà uma listagem das chamadas de funÃÃo que partem daqui atà o gdk_pixbuf_new. Finalmente hà uma lista de funÃÃes que estÃo no prÃximo nÃvel inferior e chamam estas funÃÃes. TambÃm existem, obviamente, entradas para os nÃveis 1, 2 e 3, mas este à o primeiro nÃvel a alcanÃar logo abaixo, atravÃs do cÃdigo GDK, o cÃdigo do <application>Same GNOME</application>. A partir desta listagem, nÃs podemos ver instantÃneamente que o problema do cÃdigo à o load_scenario."
+
+#: C/optimization-massif.xml:98(para)
+msgid "Now that we know what part of our code is using all the spacetime we can look at it and find out why. It turns out that the load_scenario is loading a pixbuf from file and then never freeing that memory. Having identified the problem code, we can start to fix it."
+msgstr "Agora que sabemos qual parte do nosso cÃdigo està utilizando todo o espaÃo-tempo, nÃs podemos olhar para ele e descobrir o porquÃ. Verifica-se que o load_scenario està carregando um pixbuf a partir do arquivo e entÃo nunca liberando aquela memÃria. Tendo sido identificado o cÃdigo problemÃtico, nÃs podemos comeÃar a consertÃ-lo."
+
+#: C/optimization-massif.xml:103(title)
+msgid "Acting on the Results"
+msgstr "Atuando sobre os resultados"
+
+#: C/optimization-massif.xml:104(para)
+msgid "Reducing spacetime consumption is good, but there are two ways of reducing it and they are not equal. You can either reduce the amount of memory allocated, or reduce the amount of time it is allocated for. Consider for a moment a model system with only two processes running. Both processes use up almost all the physical RAM and if they overlap at all then the system will swap and everything will slow down. Obviously if we reduce the memory usage of each process by a factor of two then they can peacefully coexist without the need for swapping. If instead we reduce the time the memory is allocated by a factor of two then the two programs can coexist, but only as long as their periods of high memory use don't overlap. So it is better to reduce the amount of memory allocated."
+msgstr "Reduzir o consumo de espaÃo-tempo à bom, porÃm hà duas formas de reduzi-lo e elas nÃo sÃo iguais. Vocà pode tanto reduzir a quantidade de memÃria alocada ou reduzir o montante de tempo que à alocado para isto. Por um momento, considere um modelo de sistema com apenas dois processos em execuÃÃo. Ambos os processos utilizam quase toda a memÃria RAM fÃsica e se eles se sobrepoem completamente, entÃo o sistema irà utilizar a memÃria de troca (swap) e tudo vai ficar lento. Obviamente, se nÃs reduzimos a utilizaÃÃo de memÃria de cada processo por um fator de dois, entÃo eles podem coexistir pacificamente sem a necessidade de utilizar a memÃria de troca (swap). Se ao invÃs disso, nÃs reduzimos o tempo o qual a memÃria à alocada por um fator de dois, entÃo os dois programas podem coexistir, mas apenas enquanto seus perÃodos de alta utilizaÃÃo de memÃria nÃo sobreporem-se. Logo, à melhor reduzir o montante de memÃria alocada."
+
+#: C/optimization-massif.xml:107(para)
+msgid "Unfortunately, the choice of optimization is also constrained by the needs of the program. The size of the pixbuf data in <application>Same GNOME</application> is determined by the size of the game's graphics and cannot be easily reduced. However, the amount of time it spends loaded into memory can be drastically reduced. <xref linkend=\"optimization-massif-FIG-output-optimized\"/> shows the <application>Massif</application> analysis of <application>Same GNOME</application> after being altered to dispose of the pixbufs once the images have been loaded into the X server."
+msgstr "Infelizmente, a escolha de otimizaÃÃo tambÃm à reprimida pelas necessidades do programa. O tamanho dos dados do pixbuf no <application>Same GNOME</application> à determinado pelo tamanho dos grÃficos do jogo e nÃo pode ser reduzido facilmente. Entretanto, a quantidade de tempo que ele gasta sendo carregado para dentro da memÃria, pode ser drasticamente reduzido. <xref linkend=\"optimization-massif-FIG-output-optimized\"/> mostra a anÃlise feita pelo <application>Massif</application> do <application>Same GNOME</application> apÃs se dispor do pixbufs, uma vez que as imagens foram carregadas dentro do servidor X."
+
+#: C/optimization-massif.xml:111(title)
+msgid "<application>Massif</application> output for the optimized <application>Same GNOME</application> program."
+msgstr "SaÃda do <application>Massif</application> para o programa <application>Same GNOME</application> otimizado."
+
+#: C/optimization-massif.xml:118(para)
+msgid "The spacetime use of gdk_pixbuf_new is now a thin band that only spikes briefly (it is now the sixteenth band down and shaded magenta). As a bonus, the peak memory use has dropped by 200 kB since the spike occurs before other memory is allocated. If two processes like this where run together the chances of the peak memory usage coinciding, and hence the risk of swapping, would be quite low."
+msgstr "A utilizaÃÃo de espaÃo-tempo do gdk_pixbuf_new à agora uma faixa fina que apenas sofre picos de forma leve (à a dÃcima-sexta faixa para baixo e sombreada de magenta). Como bÃnus, o pico de utilizaÃÃo de memÃria caiu 200 kB, jà que o pico ocorre antes de outra memÃria ser alocada. Se dois processos como este sÃo executados juntos, as chances do pico de utilizaÃÃo de memÃria coincidirem, e por isso o risco de usar memÃria de troca (swap), seriam bastante baixos."
+
+#: C/optimization-massif.xml:121(para)
+msgid "Can we do better ? A quick examination of <application>Massif</application>'s text output reveals: g_strdup to be the new major offender."
+msgstr "NÃs podemos fazer melhor ? Uma verificaÃÃo rÃpida na saÃda de texto do <application>Massif</application> revela: g_strdup como o novo maior ofensor."
+
+#: C/optimization-massif.xml:124(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"Command: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 87.6% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"    7.7% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    7.6% : 0x43BC9F: (within /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    6.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    5.2% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+msgstr ""
+"\n"
+"Comando: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 87.6% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"    7.7% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    7.6% : 0x43BC9F: (within /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    6.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    5.2% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+
+#: C/optimization-massif.xml:139(para)
+msgid "If we look closer though we see that it is called from many, many, places."
+msgstr "Se olhamos mais de perto, observamos que ele à chamado de muitos, muitos, lugares."
+
+#: C/optimization-massif.xml:142(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"== 1 ===========================\n"
+"Context accounted for  7.7% of measured spacetime\n"
+"  0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"Called from:\n"
+"    1.8% : 0x8BF606: gtk_icon_source_copy (in /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    1.1% : 0x67AF6B: g_param_spec_internal (in /usr/lib/libgobject-2.0.so.0.400.6)\n"
+"\n"
+"    0.9% : 0x91FCFC: (within /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    0.8% : 0x57EEBF: g_quark_from_string (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"  and 155 other insignificant places\n"
+"        "
+msgstr ""
+"\n"
+"== 1 ===========================\n"
+"Context accounted for  7.7% of measured spacetime\n"
+"  0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"Called from:\n"
+"    1.8% : 0x8BF606: gtk_icon_source_copy (in /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    1.1% : 0x67AF6B: g_param_spec_internal (in /usr/lib/libgobject-2.0.so.0.400.6)\n"
+"\n"
+"    0.9% : 0x91FCFC: (within /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    0.8% : 0x57EEBF: g_quark_from_string (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"  and 155 other insignificant places\n"
+"        "
+
+#: C/optimization-massif.xml:158(para)
+msgid "We now face diminishing returns for our optimization efforts. The graph hints at another possible approach: Both the \"other\" and \"heap admin\" bands are quite large. This tells us that there are a lot of small allocations are being made from a variety of places. Eliminating these will be difficult, but if they can be grouped then the individual allocations can be larger and the \"heap admin\" overhead can be reduced."
+msgstr "Agora nÃs nos deparamos com retornos cada vez menores para os nossos esforÃos de otimizaÃÃo. O grÃfico sugere outra possÃvel abordagem: Tanto as faixas \"outros\" e \"gerenciamento de heap\" sÃo bem grandes. Isto nos diz que hà um monte de pequenas alocaÃÃes sendo feitas a partir de uma variedade de lugares. EliminÃ-las serà difÃcil porÃm se elas puderem ser agrupadas, entÃo as alocaÃÃes individuais poderÃo ser maiores e a elevada faixa \"gerenciamento de heap\" poderà ser reduzida."
+
+#: C/optimization-massif.xml:163(title)
+msgid "Caveats"
+msgstr "AdvertÃncias"
+
+#: C/optimization-massif.xml:164(para)
+msgid "There are a couple of things to watch out for: Firstly, spacetime is only reported as a percentage, you have to compare it to the overall size of the program to decide if the amount of memory is worth pursuing. The graph, with its kilobyte vertical axis, is good for this."
+msgstr "Existem um par de coisas as quais devemos ficar atentos: Primeiramente, espaÃo-tempo à apenas informado como uma porcentagem, vocà deve comparÃ-lo ao tamanho total do programa, para decidir se vale a pena vocà ir atrÃs de quantidade de memÃria. O grÃfico, com seu eixo vertical em kilobytes, à bom para isto."
+
+#: C/optimization-massif.xml:167(para)
+msgid "Secondly, <application>Massif</application> only takes into account the memory used by your own program. Resources like pixmaps are stored in the X server and aren't considered by <application>Massif</application>. In the <application>Same GNOME</application> example we have actually only moved the memory consumption from client-side pixbufs to server-side pixmaps. Even though we cheated there are performance gains. Keeping the image data in the X server makes the graphics routines quicker and removes a lot of inter-process communication. Also, the pixmaps will be stored in a native graphics format which is often more compact than the 32-bit RGBA format used by gdk_pixbuf. To measure the effect of pixmaps, and other X resources use the <ulink type=\"http\" url=\"http://www.freedesktop.org/Software/xrestop\";>xrestop</ulink> program."
+msgstr "Em segundo lugar, o <application>Massif</application> apenas leva em consideraÃÃo a memÃria utilizada pelo seu prÃprio programa. Recursos como pixmaps sÃo armazenados no servidor X e nÃo sÃo considerados pelo <application>Massif</application>. No exemplo do <application>Same GNOME</application> nÃs realmente sà mudamos o consumo de memÃria do lado do cliente do pixbufs para o lado do servidor pixmaps. Apesar de termos trapaceado, ocorreram ganhos de performance. Manter os dados de imagem no servidor X, faz com que as rotinas dos grÃficos fiquem mais rÃpidas e remove uma grande quantidade de comunicaÃÃes entre processos (ipcs). Ademais, os pixamps serÃo armazenados em um formato grÃfico nativo que geralmente à mais compacto que o formato RGBA de 32-bits utilizado pelo gdk_pixbuf. Para medir o efeito de pixmaps, e outros recursos X, utilize o programa <ulink type=\"http\" url=\"http://www.freedesktop.org/Software/xrestop\";>xrestop</ulink>."
+
+#: C/optimization-harmful.xml:3(title)
+msgid "Disk Seeks Considered Harmful"
+msgstr "Buscas em disco sÃo consideradas prejudiciais"
+
+#: C/optimization-harmful.xml:5(para)
+msgid "Disk seeks are one of the most expensive operations you can possibly perform. You might not know this from looking at how many of them we perform, but trust me, they are. Consequently, please refrain from the following suboptimal behavior:"
+msgstr "Buscas em disco sÃo uma das operaÃÃes mais custosas que vocà possÃvelmente pode realizar. Vocà pode nÃo saber isto apenas olhando quantas delas realizamos porÃm, acredite em mim, elas sÃo. Deste modo, por favor abstenha-se deste comportamento abaixo do normal que se segue:"
+
+#: C/optimization-harmful.xml:10(para)
+msgid "Placing lots of small files all over the disk."
+msgstr "Colocando vÃrios pequenos arquivos sobre todo o disco."
+
+#: C/optimization-harmful.xml:15(para)
+msgid "Opening, stating, and reading lots of files all over the disk"
+msgstr "Abrindo, iniciando, e lendo vÃrios arquivos sobre todo o disco"
+
+#: C/optimization-harmful.xml:20(para)
+msgid "Doing the above on files that are laid out at different times, so as to ensure that they are fragmented and cause even more seeking."
+msgstr "Fazer o que està acima em arquivos que sÃo dispostos em tempos diferentes, garante que os arquivos sÃo fragmentados e causem ainda mais buscas em disco."
+
+#: C/optimization-harmful.xml:25(para)
+msgid "Doing the above on files that are in different directories, so as to ensure that they are in different cylinder groups and and cause even more seeking."
+msgstr "Fazer o que està acima em arquivos que estÃo em diferentes diretÃrios, garante que os arquivos estÃo em diferentes grupos de cilindros e causem ainda mais buscas em disco."
+
+#: C/optimization-harmful.xml:30(para)
+msgid "Repeatedly doing the above when it only needs to be done once."
+msgstr "FaÃa repitidamente o que està acima apenas quando for necessÃrio fazer uma Ãnica vez."
+
+#: C/optimization-harmful.xml:35(para)
+msgid "Ways in which you can optimize your code to be seek-friendly:"
+msgstr "Modos pelos quais vocà pode otimizar seu cÃdigo para realizar pesquisas de forma amigÃvel:"
+
+#: C/optimization-harmful.xml:40(para)
+msgid "Consolidate data into a single file."
+msgstr "Consolidar os dados em um Ãnico arquivo."
+
+#: C/optimization-harmful.xml:45(para)
+msgid "Keep data together in the same directory."
+msgstr "Manter os dados juntos no mesmo diretÃrio."
+
+#: C/optimization-harmful.xml:50(para)
+msgid "Cache data so as to not need to reread constantly."
+msgstr "Fazer cache dos dados a fim de nÃo precisar relÃ-los constantemente."
+
+#: C/optimization-harmful.xml:55(para)
+msgid "Share data so as not to have to reread it from disk when each application loads."
+msgstr "Compartilhar os dados a fim de nÃo precisar relÃ-los a partir do disco rÃgido quando cada aplicativo à carregado."
+
+#: C/optimization-harmful.xml:60(para)
+msgid "Consider caching all of the data in a single binary file that is properly aligned and can be mmaped."
+msgstr "Considerar fazer cache de todos os dados em um Ãnico arquivo binÃrio, o qual està corretamente alinhado e que pode ser mapeado."
+
+#: C/optimization-harmful.xml:65(para)
+msgid "The trouble with disk seeks are compounded for reads, which is unfortunately what we are doing. Remember, reads are generally synchronous while writes are asynchronous. This only compounds the problem, serializing each read, and contributing to program latency."
+msgstr "Os problemas com pesquisas em disco sÃo agravados pelas leituras as quais, infelizmente, sÃo o que estamos fazendo. Lembre-se, leituras sÃo geralmente sÃncronas enquanto escritas sÃo assÃncronas. Isto sà agrava o problema, serializando cada leitura e contribuindo para a latÃncia do programa."
+
+#: C/optimization-guide.xml:5(title)
+msgid "Optimizing GNOME Software"
+msgstr "Otimizando software do GNOME"
+
+#: C/optimization-guide.xml:8(publishername)
+#: C/optimization-guide.xml:56(para)
+msgid "GNOME Documentation Project"
+msgstr "Projeto de documentaÃÃo do GNOME"
+
+#: C/optimization-guide.xml:11(year)
+#: C/optimization-guide.xml:15(year)
+msgid "2004-2005"
+msgstr "2004-2005"
+
+#: C/optimization-guide.xml:12(holder)
+msgid "Callum McKenzie"
+msgstr "Callum McKenzie"
+
+#: C/optimization-guide.xml:16(holder)
+msgid "Robert Love"
+msgstr "Robert Love"
+
+#: C/optimization-guide.xml:20(firstname)
+msgid "Callum"
+msgstr "Callum"
+
+#: C/optimization-guide.xml:21(surname)
+msgid "McKenzie"
+msgstr "McKenzie"
+
+#: C/optimization-guide.xml:24(firstname)
+msgid "Robert"
+msgstr "Robert"
+
+#: C/optimization-guide.xml:25(surname)
+msgid "Love"
+msgstr "Love"
+
+#: C/optimization-guide.xml:29(para)
+msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the <citetitle>GNU Free Documentation License</citetitle>, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy of the <citetitle>GNU Free Documentation License</citetitle> from the Free Software Foundation by visiting <ulink type=\"http\" url=\"http://www.fsf.org\";>their Web site</ulink> or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
+msgstr "PermissÃo concedida para copiar, distribuir e/ou modificar este documento sob os termos da <citetitle>LicenÃa de DocumentaÃÃo Livre GNU (GNU Free Documentation License)</citetitle>, VersÃo 1.1 ou qualquer versÃo mais recente publicada pela Free Software Foundation; sem SeÃÃes Invariantes, Textos de Capa Frontal, e sem Textos de Contracapa. Vocà pode encontrar uma cÃpia da licenÃa <citetitle>GNU Free Documentation License</citetitle> da Free Software Foundation visitando  <ulink type=\"http\" url=\"http://www.fsf.org\";>este site</ulink> ou escrevendo para: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
+
+#: C/optimization-guide.xml:41(para)
+msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps."
+msgstr "Muitos dos nomes usados por empresas para distinguir seus produtos e serviÃos sÃo reivindicados como marcas registradas. Onde esses nomes aparecem em qualquer documentaÃÃo do GNOME e os membros do Projeto de DocumentaÃÃo do GNOME estiverem cientes dessas marcas registradas, os nomes aparecerÃo impressos em letras maiÃsculas ou com iniciais em maiÃsculas."
+
+#: C/optimization-guide.xml:52(revnumber)
+msgid "0.1"
+msgstr "0.1"
+
+#: C/optimization-guide.xml:53(date)
+msgid "November 2007"
+msgstr "Novembro de 2007"
+
+#: C/optimization-guide.xml:55(para)
+msgid "William Johnston"
+msgstr "William Johnston"
+
+#: C/optimization-guide.xml:57(para)
+msgid "Intial conversion to docbook format."
+msgstr "ConversÃo inicial para o formato docbook."
+
+#: C/optimization-guide.xml:63(para)
+msgid "Software can be optimized in many ways: for speed, program size, or memory use. This section contains guides and tutorials for optimizing your software."
+msgstr "Um software pode ser otimizado de diversas formas: na velocidade, no tamanho do programa ou na utilizaÃÃo de memÃria. Esta seÃÃo contÃm guias e tutoriais para otimizar seu software."
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: C/optimization-guide.xml:0(None)
+msgid "translator-credits"
+msgstr "Enrico Nicoletto <liverig gmail com>, 2012."
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]