File: cs.po

package info (click to toggle)
gnome-devel-docs 40.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 79,188 kB
  • sloc: javascript: 2,514; xml: 2,407; ansic: 2,229; python: 1,854; makefile: 805; sh: 499; cpp: 131
file content (1258 lines) | stat: -rw-r--r-- 57,949 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
# Czech 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.
# Marek Černocký <marek@manet.cz>, 2010, 2011, 2013, 2014, 2015, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-devel-docs master\n"
"POT-Creation-Date: 2019-09-18 18:27+0000\n"
"PO-Revision-Date: 2019-09-24 12:41+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.7\n"

#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
msgid "translator-credits"
msgstr "Marek Černocký <marek@manet.cz>, 2010, 2013"

#. (itstool) path: page/title
#: C/harmful.page:7
msgid "Disk Seeks Considered Harmful"
msgstr "Nastavení hlaviček disku má neblahý vliv"

#. (itstool) path: page/p
#. (itstool) path: section/p
#: C/harmful.page:8 C/index.page:54
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 ""
"Natavení hlaviček disku je jedna z časově nejnákladnějších operací, které "
"jen můžete provádět. Možná byste viditelně nepoznali jak často se provádí, "
"ale věřte že se dělá. V důsledku toho se prosím vyhněte následujícímu ne "
"zrovna optimálnímu chování:"

#. (itstool) path: item/p
#: C/harmful.page:13
msgid "Placing lots of small files all over the disk."
msgstr "Umisťování velkého množství malých souborů po celém disku."

#. (itstool) path: item/p
#: C/harmful.page:18
msgid "Opening, stating, and reading lots of files all over the disk"
msgstr ""
"Otevírání, zjišťování stavu a čtení velkého množství souborů po celém disku."

#. (itstool) path: item/p
#: C/harmful.page:23
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 ""
"Provádění předchozích věcí na souborech, které byly ukládány v různou dobu a "
"tím pádem jsou nejspíše fragmentované a požadují nastavení hlaviček disku."

#. (itstool) path: item/p
#: C/harmful.page:28
msgid ""
"Doing the above on files that are in different directories, so as to ensure "
"that they are in different cylinder groups and cause even more seeking."
msgstr ""
"Provádění předchozích věcí na souborech, které jsou v různých složkách, tím "
"pádem určitě na různých skupinách cylindrů, což způsobí další nastavení "
"hlaviček disku."

#. (itstool) path: item/p
#: C/harmful.page:33
msgid "Repeatedly doing the above when it only needs to be done once."
msgstr ""
"Opakované dělání věcí uvedených v předchozím, když je stačí udělat jednou."

#. (itstool) path: page/p
#: C/harmful.page:38
msgid "Ways in which you can optimize your code to be seek-friendly:"
msgstr ""
"Cesty, kterými můžete optimalizovat svůj kód, aby minimalizoval nastavení "
"hlaviček disku:"

#. (itstool) path: item/p
#: C/harmful.page:43
msgid "Consolidate data into a single file."
msgstr "Slučte data do jednoho souboru."

#. (itstool) path: item/p
#: C/harmful.page:48
msgid "Keep data together in the same directory."
msgstr "Udržujte data dohromady ve stejné složce."

#. (itstool) path: item/p
#: C/harmful.page:53
msgid "Cache data so as to not need to reread constantly."
msgstr "Ukládejte data do mezipaměti, aby je nebylo potřeba číst stále dokola."

#. (itstool) path: item/p
#: C/harmful.page:58
msgid ""
"Share data so as not to have to reread it from disk when each application "
"loads."
msgstr ""
"Sdílejte data tak, aby nemusela být znovu čtena z disku, když je chce každá "
"z aplikací načíst."

#. (itstool) path: item/p
#: C/harmful.page:63
msgid ""
"Consider caching all of the data in a single binary file that is properly "
"aligned and can be mmapped."
msgstr ""
"Zvažte ukládání všech dat do mezipaměti v podobě jednoho binárního souboru, "
"který je správně zarovnán a lze pro něj použít mmap."

#. (itstool) path: page/p
#: C/harmful.page:68
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 ""
"Problémy s nastavením hlaviček disku jsou složité hlavně pro čtení, což je "
"bohužel přesně to co děláme. Pamatujte, že čtení je obecně synchronní, "
"zatímco zápis asynchronní. To problém jen komplikuje, serializuje každé "
"čtení a přispívá k prodlouženým odezvám programu"

#. (itstool) path: license/p
#: C/index.page:7
msgid ""
"Permission is granted to copy, distribute and/or modify this document under "
"the terms of the GNU Free Documentation License, 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 GNU Free Documentation License from the Free Software Foundation "
"by visiting <link href=\"http://www.fsf.org\">their Web site</link> or by "
"writing to: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor "
"Boston, MA 02110-1335, USA."
msgstr ""
"Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU "
"Free Documentation License, verze 1.1 nebo jakékoli další verze vydané "
"nadací Free Software Foundation; bez neměnných oddílů, bez textů předních "
"desek a bez textů zadních desek. Kopii licence GNU Free Documentation "
"License od Free Software Foundation můžete získat navštívením <ulink url="
"\"http://www.fsf.org\">webových stránek</ulink> nebo když si napíšete na: "
"Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA "
"02110-1335, USA."

#. (itstool) path: license/p
#: C/index.page:16
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 ""
"Mnoho názvů použitých firmami k zviditelnění produktů nebo služeb jsou "
"ochranné známky. Na místech, kde jsou tyto názvy v dokumentaci použity a "
"členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se "
"jedná o ochrannou známku, je takovýto název psán velkými písmeny celý nebo s "
"velkým písmenem na začátku."

#. (itstool) path: credit/years
#: C/index.page:24 C/index.page:28
msgid "2004-2005"
msgstr "2004 – 2005"

#. (itstool) path: credit/name
#: C/index.page:25
msgid "Callum McKenzie"
msgstr "Callum McKenzie"

#. (itstool) path: credit/name
#: C/index.page:29
msgid "Robert Love"
msgstr "Robert Love"

#. (itstool) path: info/desc
#: C/index.page:32
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 ""
"Software je možné optimalizovat z řady důvodů: na rychlost, na velikost "
"programu nebo využití paměti. Zde najdete příručku a průvodce, kteří vám s "
"tím pomohou u vašeho softwaru."

#. (itstool) path: page/title
#: C/index.page:35
msgid "Optimization Guide"
msgstr "Příručka k optimalizaci"

#. (itstool) path: section/title
#: C/index.page:38 C/massif.page:12
msgid "Introduction"
msgstr "Úvod"

#. (itstool) path: section/p
#: C/index.page:39
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 ""
"Toto je stručný úvod do optimalizace vysvětlující jak i proč. Podrobný popis "
"jednotlivých nástrojů a technik je ponechán na jiné články, je ale "
"poskytnuta sbírka rad a triků."

#. (itstool) path: section/title
#: C/index.page:45
msgid "Massif"
msgstr "Massif"

#. (itstool) path: section/p
#. (itstool) path: page/p
#: C/index.page:46 C/massif.page:9
msgid ""
"This article describes how to use the <app>Massif</app> heap profiler with "
"GNOME applications. We describe how to invoke, interpret, and act on the "
"output of <app>Massif</app>. The <app>Swell Foop</app> game is used as an "
"example."
msgstr ""
"Tento článek popisuje jak používat profiler zásobníku <app>Massif</app> s "
"aplikacemi GNOME. Popisuje jak získat, interpretovat a využít výstup z "
"aplikace <app>Massif</app>. Jako příklad je použita hra <app>Swell Foop</"
"app>."

#. (itstool) path: section/title
#: C/index.page:53
msgid "Harmfulness"
msgstr "Nepříznivé vlivy"

#. (itstool) path: page/title
#: C/introduction.page:7
msgid "What are we Optimizing?"
msgstr "Co optimalizujeme?"

#. (itstool) path: page/p
#: C/introduction.page:8
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 ""
"Když se pouštíme do optimalizace pro GNOME, musíme mít na paměti zaprvé "
"toto: Nezkoušíme udělat lepším program, nýbrž zkoušíme udělat šťastnějším "
"člověka používajícího počítač."

#. (itstool) path: page/p
#: C/introduction.page:10
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 ""
"Lepší program dělá lidi šťastnějšími, ale některá vylepšení to ovlivní více, "
"než jiná: Odezva, rychlost spouštění, snadný přístup k příkazům a to, že "
"nebude počítač odkládat data na disk ve chvíli, kdy spustíte více než dva "
"programy."

#. (itstool) path: page/p
#: C/introduction.page:13
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 ""
"Tradiční optimalizace řeší takové věci, jako je využití procesoru, velikost "
"kódu, počet kliknutí myší a využití paměti programem. Tento druhý seznam byl "
"zvolen tak, aby měl přímou souvislost s prvně uvedeným, je zde ale několik "
"podstatných rozdílů: Osoba používající GNOME se nestará o druhý seznam, ale "
"zajímá ji ten první. Při optimalizaci programů GNOME budeme snižovat zátěž "
"procesoru, využití paměti a všechny tyto věci, ale je to jen cesta k řešení, "
"ne cíl. Optimalizujeme pro lidi."

#. (itstool) path: section/title
#: C/introduction.page:18
msgid "Doing the Optimization"
msgstr "Optimalizujeme"

#. (itstool) path: section/p
#: C/introduction.page:19
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 ""
"Předchozí oddíl opominul jeden důležitý kvalifikátor: Optimalizovat se dá "
"jen to, co je měřitelné. Nemůžete měřit štěstí. Můžete ale změřit dobu "
"spouštění a zjistit tak, zda jste ji zkrátili. Štěstí pak bude, snad, "
"následovat."

#. (itstool) path: section/p
#: C/introduction.page:22
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 <em>should</em> be fast and a program that <em>is</em> fast."
msgstr ""
"Optimalizace je proces měření, vypilovávání a opětovného měření. To znamená, "
"že první věc, co musíte udělat, je najít způsob, jak změřit to, co chcete "
"optimalizovat. V ideálním případě je výsledkem měření jedno číslo, například "
"čas potřebný k provedení úlohy. Je to váš test výkonu a jde jen o způsob, "
"jak se dovědět, zda jste zvítězili nebo ne. Je velký rozdíl mezi programem, "
"který by <em>měl</em> být rychlý a programem, který <em>je</em> rychlý."

#. (itstool) path: section/p
#: C/introduction.page:25
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 ""
"Když máte základní test výkonu, potřebujete najít proč váš kód nedělá věci "
"tak dobře, jak by měl. Svádí to ke zkoumání: podívat se na kód a zkusit "
"vystopovat něco, co vypadá, že by potřebovalo vylepšit. Zpravidla budete "
"neúspěšní. Jediný způsob, jak s jistotou podrobně zjistit co se v programu "
"kazí, je použít profiler."

#. (itstool) path: section/p
#: C/introduction.page:28
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 ""
"Obvykle je problém izolovat malý oddíl kódu. Vypíchněte nejhorší místo a "
"nejprve se soustřeďte na něj. Když to uděláte, spusťte znovu profiler a "
"opakujte to. Postupně vytěžíte z každého kroku méně a méně, až do chvíle, "
"kdy se rozhodnete, že je výsledek dostatečně dobrý. Pokud přes úsilí získáte "
"jen 10% zlepšení, je měly byste se přestat zabývat tímto místem."

#. (itstool) path: section/p
#: C/introduction.page:31
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 ""
"Nezapomeňte se na to dívat jako na celek. Než například zkoušet zrychlit "
"kousek kódu, zeptejte se sami sebe, jestli jej vůbec potřebujete spouštět. "
"Mohl by být sloučen s jiným kusem kódu? Je možné výsledky předchozích "
"výpočtů uložit a znovu použít? Optimalizace není potřeba, pokud jde o místo, "
"kterého si uživatel nikdy nevšimne. Pokud je to stále horší, možná byl kód "
"již optimalizován a provádí náročné výpočty, aby se nemusely dělat později. "
"Nebo kód neběží izolovaně a nebo vůbec optimalizovat nepůjde."

#. (itstool) path: section/title
#: C/introduction.page:37
msgid "Hints"
msgstr "Rady"

#. (itstool) path: item/title
#: C/introduction.page:41
msgid "The Fundamentals"
msgstr "Základní"

#. (itstool) path: item/p
#: C/introduction.page:44
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 ""
"Spusťte testování výkonu po každé změně, kterou uděláte v kódu, a udržujte "
"si evidenci všech svých změn a toho, jak test výkonu ovlivnily. To vám "
"umožní napravit chyby a vyvarovat se stejných chyb do budoucna."

#. (itstool) path: item/p
#: C/introduction.page:49
msgid ""
"Make sure your code is correct and bug-free before optimizing it. Check that "
"it remains correct and bug-free after optimization."
msgstr ""
"Před započetím optimalizace se ujistěte, že je váš kód správný a bez chyb. "
"Tím se vyvarujete oprav a ladění chyb po optimalizaci."

#. (itstool) path: item/p
#: C/introduction.page:54
msgid "Optimize at the high level before optimizing the details."
msgstr ""
"Než začnete optimalizovat detaily, zaměřte se na optimalizaci na vyšší "
"úrovni."

#. (itstool) path: item/p
#: C/introduction.page:59
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 ""
"Používejte správné algoritmy. Klasickým příkladem uváděným v knihách je "
"nasazení quick-sort namísto bubble-sort. Takových příkladů existuje celá "
"řada, některé šetří paměť, jiné výkon procesoru. Také se podívejte, co "
"můžete udělat jednodušeji: můžete použít i rychlejší algoritmus než je quick-"
"sort, pokud se připravíte udělat určité kompromisy."

#. (itstool) path: item/p
#: C/introduction.page:64
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 ""
"Optimalizace je o kompromisech. Ukládání výsledků do mezipaměti zrychlí "
"výpočty, ale zároveň zvýší použití paměti. Ukládání dat na disk ušetří "
"paměť, ale platíme za to časem potřebným k jejich načtení z disku nazpět."

#. (itstool) path: item/p
#: C/introduction.page:69
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 ""
"Ujistěte se, že jste provedli optimalizaci vůči široké paletě vstupních dat. "
"Pokud tak neučiníte, můžete skončit s kusem kódu pečlivě optimalizovaným pro "
"jedno pole, ale ne tak pro ostatní."

#. (itstool) path: item/p
#: C/introduction.page:74
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 ""
"Vyvarujte se náročných operací: Spousty malých čtení z disku. Používání "
"velkého množství paměti, které způsobuje odkládání na disk. Vyvarujte se "
"jakýchkoliv ne nutně nezbytných diskových operací, čtení i zápisu. Síť může "
"být také pomalá. Rovněž omezte grafické operace, které potřebují odezvu od X "
"serveru."

#. (itstool) path: item/title
#: C/introduction.page:81
msgid "Traps for the Unwary"
msgstr "Nástrahy a léčky"

#. (itstool) path: item/p
#: C/introduction.page:84
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 ""
"Dejte si pozor na vedlejší efekty. Častá je vzájemná vazba mezi různými "
"částmi kódu, takže zrychlení jedné části může způsobit zpomalení jiné."

#. (itstool) path: item/p
#: C/introduction.page:89
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 ""
"Když měříte čas kódu, i na systému v klidu ovlivňují čas události mimo "
"program. Používejte průměrnou hodnotu z více spuštění. Pokud je kód velmi "
"krátký, může být měření času také problematické. V takovém případě měřte čas "
"pro 100 nebo 1000 opakovaných spuštění kódu. Když je zaznamenaný čas delší "
"než několik sekund, mělo by to být v pořádku."

#. (itstool) path: item/p
#: C/introduction.page:94
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 ""
"Je velmi snadné nechat se zmást profilerem. Existují historky o lidech, "
"kteří optimalizovali čekací smyčku operačního systému, protože tam program "
"trávil většinu času. Neoptimalizujte kód, který nedělá něco, co by zajímalo "
"uživatele."

#. (itstool) path: item/p
#: C/introduction.page:99
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 ""
"Pamatujte na zdroje X serveru. Využití paměti vaším programem nezahrnuje "
"pixelové mapy, protože ty jsou uložené v procesu X serveru, ale paměť tak "
"jako tak okupují. Pomocí xrestop se můžete podívat, které zdroje váš program "
"používá."

#. (itstool) path: item/title
#: C/introduction.page:106
msgid "Low Level Hints"
msgstr "Rady pro nízkoúrovňové programování"

#. (itstool) path: item/p
#: C/introduction.page:109
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 ""
"Když optimalizujete využití paměti, berte na vědomí rozdíl mezi špičkovým "
"využitím a průměrným využitím. Nějaká paměť je skoro vždy alokovaná, což je "
"obvykle špatně. Nějaká je alokovaná jen zřídka, což může být přijatelné. "
"Nástroje, jako je massif, místo toho používají koncept časoprostoru "
"(spacetime), kdy sledují kolik paměti je využito i na jak dlouho je "
"alokována."

#. (itstool) path: item/p
#: C/introduction.page:114
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 ""
"Změřte čas zjednodušeného kousku kódu, který dělá jen to, co považujete za "
"podstatné, čímž získáte nejnižší časový limit, kterého může kód dosáhnout. "
"Například, když optimalizujete smyčku, změřte čas prázdné smyčky. Pokud i to "
"zabere příliš mnoho času, jakékoliv mikrooptimalizace vám nepomohou a je "
"potřeba zásadně změnit návrh. Ujistěte se, že překladač v rámci optimalizace "
"smyčku nevyhodí."

#. (itstool) path: item/p
#: C/introduction.page:119
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 ""
"Přesuňte kód mimo programové smyčky. Trochu složitější část kódu, která se "
"spustí jednou je mnohem rychlejší, než jednodušší část, která se spouští "
"tisíckrát. Vyvarujte se častému volání pomalého kódu."

#. (itstool) path: item/p
#: C/introduction.page:124
msgid ""
"Give the compiler as many hints as possible. Use the const keyword. Use "
"<code>G_INLINE_FUNC</code> for short, frequently called, functions. Look up "
"<code>G_GNUC_PURE</code>, <code>G_LIKELY</code> and the other glib "
"miscellaneous macros. Use the macros instead of gcc-specific keywords to "
"ensure portability."
msgstr ""
"Poskytněte překladači co nejvíce rad je možné. Používejte klíčové slovo "
"const. Používejte <code>G_INLINE_FUNC</code> pro krátké, často volané "
"funkce. Podívejte se na <code>G_GNUC_PURE</code>, <code>G_LIKELY</code> a "
"další různá makra glib. Používejte makra namísto klíčových slov specifických "
"pro překladač gcc, abyste zajistili přenositelnost."

#. (itstool) path: item/p
#: C/introduction.page:129
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 ""
"Nepoužívejte jazyk assembler. Není přenositelný a ačkoliv může být na jednom "
"procesoru rychlý, nikde není garantováno, že bude rychlý na všech "
"procesorech, které podporují danou architekturu (např. Athlon vs. Pentium 4)."

#. (itstool) path: item/p
#: C/introduction.page:134
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 ""
"Nepřepisujte stávající knihovní rutiny, pokud si nejste opravdu jistí, že "
"jsou přehnaně pomalé. Řada knihovních rutin, které intenzivně využívají "
"procesor, již byla optimalizována. Naopak, některé knihovní rutiny jsou "
"pomalé, zvláště ty, které provádí systémová volání operačního systému."

#. (itstool) path: item/p
#: C/introduction.page:139
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 ""
"Minimalizujte počet vazeb na knihovny. Na čím méně knihoven se bude program "
"vázat, tím rychleji bude startovat. Toto je věc, která se v GNOME dělá "
"obtížně."

#. (itstool) path: item/title
#: C/introduction.page:146
msgid "High Level Tricks"
msgstr "Triky pro vysokoúrovňové programování"

#. (itstool) path: item/p
#: C/introduction.page:149
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 ""
"Užívejte výhod běhu více věcí. To nemusí nutně znamenat použití více "
"procesorů, může to znamenat i využití času, který uživatel tráví "
"přemýšlením, co hodná dále dělat, k provádění výpočtů předem. Provádějte "
"výpočty během čekání na načtení dat z disku. Využívejte výhod více zdrojů, "
"používejte je všechny naráz."

#. (itstool) path: item/p
#: C/introduction.page:154
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 ""
"Švindlujte. Uživatel si pouze musí myslet, že je počítač rychlejší, není "
"podstatné, jestli tomu tak skutečně je. Jde o to, že důležitý je čas mezi "
"příkazem a odpovědí a pokud uživatel dostane co očekává, není podstatné "
"jestli je odpověď vypočítaná dopředu, uložená v mezipaměti nebo bude ve "
"skutečnosti zpracována později v příhodnějším čase."

#. (itstool) path: item/p
#: C/introduction.page:159
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 ""
"Provádějte věci v čekací smyčce. Je to jednodušší, než program, který "
"používá plně vícevláknový běh, a přesto můžete provádět věci skrytě před "
"zraky uživatelů. Ale pozor, pokud strávíte příliš času v čekací smyčce, bude "
"program reagovat rychlostí šneka. Nezapomeňte pravidelně předávat řízení "
"zpět do hlavní smyčky."

#. (itstool) path: item/p
#: C/introduction.page:164
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 ""
"Když vše ostatní selže, alespoň oznamte uživateli, že provádění bude pomalé "
"a zobrazte ukazatel průběhu. Sice nebude tak šťastný, jako kdybyste mu "
"zobrazili výsledky, ale aspoň bude vědět, že program nezkolaboval a že si "
"může zatím dát kávičku."

#. (itstool) path: page/title
#: C/massif.page:7
msgid "Using <app>Massif</app> for Profiling Memory Use in GNOME Software"
msgstr ""
"Použití aplikace <app>Massif</app> k profilování využití paměti v softwaru "
"GNOME"

#. (itstool) path: section/p
#: C/massif.page:13
msgid ""
"<app>Massif</app> is a member of the <link href=\"http://valgrind.org/"
"\">valgrind</link> 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 ""
"<app>Massif</app> je součástí sady nástrojů na profilování paměti <ulink url="
"\"http://valgrind.org/\">valgrind</ulink>. Jeho účelem je poskytnout "
"podrobný pohled na dynamické využití paměti během životního cyklu programu. "
"Speciálně zaznamenává využití paměti haldy a zásobníku."

#. (itstool) path: section/p
#: C/massif.page:16
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 <app>Massif</app> "
"treats it as though it were just another part of the heap. <app>Massif</app> "
"also gives information about how much memory is used to manage the heap."
msgstr ""
"Halda je oblast paměti, která se alokuje funkcemi jako je malloc. Podle "
"požadavků se zvětšuje a obvykle je to největší paměťová oblast v programu. "
"Zásobník je místo, ve kterém jsou uchovávána lokální data funkcí. To "
"zahrnuje „automatické“ proměnné v C a návratovou adresu podprogramu. "
"Zásobník je obvykle podstatně menší a méně aktivní než halda. Zásobníkem se "
"výslovně zabývat nechceme, protože aplikace <app>Massif</app> s ním zachází "
"stejně, jako by to byla jen další část haldy. Aplikace <app>Massif</app> "
"rovněž poskytuje informace o tom, kolik paměti je využito ke správě haldy."

#. (itstool) path: section/p
#: C/massif.page:18
msgid ""
"<app>Massif</app> produces two output files: a graphical overview in a "
"postscript file and a detailed breakdown in a text file."
msgstr ""
"Aplikace <app>Massif</app> vytváří dva výstupní soubory: grafický přehled v "
"postskriptovém souboru a podrobný rozpis v textovém souboru."

#. (itstool) path: section/title
#: C/massif.page:23
msgid "Using <app>Massif</app> with GNOME"
msgstr "Používání aplikace <app>Massif</app> s GNOME"

#. (itstool) path: section/p
#: C/massif.page:24
msgid ""
"<app>Massif</app> 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 ""
"Aplikace <app>Massif</app> má jen velmi málo přepínačů a pro mnoho programů "
"je ani nepotřebujete. Když ale aplikace pro GNOME alokují paměť, mohou se "
"zanořit  hluboko do glib nebo GTK, a proto je potřeba zvýšit počet úrovní "
"zanoření zásobníku volání v Massif. Toho se dosáhne použitím přepínače --"
"depth. Výchozí je 3, zvýšení na 5 zajistí dostatek zdrojů zásobníku volání "
"pro váš kód. Jedna nebo více úrovní může být také žádoucí k poskytnutí "
"vašeho kódu s nějakým kontextem. Jelikož s úrovní podrobností přichází "
"rychlé zahlcení, je nejlepší začít s menší hodnotou přepínače depth a zvýšit "
"ji jen v případě, kdy se ukáže nedostačující."

#. (itstool) path: section/p
#: C/massif.page:27
msgid ""
"It is also useful to tell <app>Massif</app> 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 "
"Massif about them."
msgstr ""
"Užitečné je také aplikaci <app>Massif</app> sdělit, které funkce v glib "
"alokují paměť. Tím se odstraní z výstupní sestavy vrstvy volání funkcí, "
"které nejsou nutné a získáte tak jasnější přehled, který kód alokuje paměť. "
"Alokační funkce glib jsou g_malloc, g_malloc0, g_realloc, g_try_malloc a "
"g_mem_chunk_alloc. Aplikaci Masiff to sdělíte přepínačem --alloc-fn."

#. (itstool) path: section/p
#: C/massif.page:30
msgid "Your command-line should therefore look something like:"
msgstr "Váš příkazový řádek by pro předchozí měl vypadat nějak takto:"

#. (itstool) path: section/code
#: C/massif.page:33
#, 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 swell-foop\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 swell-foop\n"
"        "

#. (itstool) path: section/p
#: C/massif.page:37
msgid ""
"<app>Swell Foop</app> is the program we will be using as an example. Be "
"warned that, since valgrind emulates the CPU, it will run <em>very</em> "
"slowly. You will also need a lot of memory."
msgstr ""
"<app>Swell Foop</app> je program, který je použit jako ukázkový. Dopředu vás "
"varujeme, že valgrind emuluje procesor, takže běh je <em>velmi</em> pomalý. "
"K tomu ještě budete potřebovat velké množství paměti."

#. (itstool) path: section/title
#: C/massif.page:41
msgid "Interpreting the Results"
msgstr "Interpretace výsledků"

#. (itstool) path: section/p
#: C/massif.page:42
msgid ""
"The graphical output of <app>Massif</app> 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 ""
"Grafický výstup aplikace <app>Massif</app> je pochopitelný i bez "
"vysvětlování. Každý pás představuje paměť alokovanou jednou funkcí v průběhu "
"času. Když zjistíte, který pás využívá nejvíce paměti, což je obvykle ten "
"nejtlustší z nich nahoře, dohledejte si k němu podrobnosti v textovém "
"souboru."

#. (itstool) path: section/p
#: C/massif.page:45
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 ""
"Textový soubor je uspořádán do hierarchie oddílů, na začátku je seznam "
"nejhorších uživatelů paměti v sestupném pořadí podle časoprostoru. Nasledují "
"další oddíly, každý rozebírající výsledky do větších podrobností, jak se "
"postupně zanořujete do zásobníku volání. Pro ilustraci použijeme výstup "
"předchozího příkazu."

#. (itstool) path: figure/title
#: C/massif.page:49
msgid ""
"<app>Massif</app> output for the unoptimized version of the <app>Swell Foop</"
"app> program."
msgstr ""
"Výstup z aplikace <app>Massif</app> pro neoptimalizovanou verzi programu "
"<app>Swell Foop</app>."

#. (itstool) path: figure/media
#. This is a reference to an external file such as an image or video. When
#. the file changes, the md5 hash will change to let you know you need to
#. update your localized copy. The msgstr is not used at all. Set it to
#. whatever you like once you have updated your copy of the file.
#: C/massif.page:50
msgctxt "_"
msgid ""
"external ref='figures/massif-before.png' "
"md5='1a6b2ace548e6789ab8bfacb3727b345'"
msgstr ""
"external ref='figures/massif-before.png' "
"md5='1a6b2ace548e6789ab8bfacb3727b345'"

#. (itstool) path: section/p
#: C/massif.page:52
msgid ""
"The image above shows a typical postscript output from <app>Massif</app>. "
"This is the result you would get from playing a single game of <app>Swell "
"Foop</app> (version 2.8.0) and then quitting. The postscript file will have "
"a name like <file>massif.12345.ps</file> and the text file will be called "
"<file>massif.12345.txt</file>. 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 <app>Swell Foop</app> starts a second process and <app>Massif</app> "
"follows that too. We will ignore this second process, it consumes very "
"little memory."
msgstr ""
"Obrázek výše ukazuje typický postskriptový výstup z aplikace <app>Massif</"
"app>. Toto je výsledek, který byste získali, když odehrajete jednu hry "
"<app>Swell Foop</app> (verze 2.8.0) a po té ji ukončíte. Postskriptový "
"soubor bude mít název ve stylu <file>massif.12345.ps</file> a textový soubor "
"obdobně <file>massif.12345.txt</file>. Číslo uprostřed je ID procesu "
"programu, který byl spuštěn. Pokud právě zkoušíte tento příklad, najdete dvě "
"verze každého souboru s lehce odlišnými čísly, což je proto, že aplikace "
"<app>Swell Foop</app> spouští druhý proces a aplikace <app>Massif</app> jej "
"následuje. Tento druhý proces budeme ignorovat, protože spotřebovává jen "
"velmi málo paměti."

#. (itstool) path: section/p
#: C/massif.page:66
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 ""
"V horní části grafu vidíme velký žlutý pás označený gdk_pixbuf.new. Ten se "
"zdá jako nejlepší kandidát na optimalizaci, ale nejdříve potřebujeme použít "
"textový soubor, abychom našli co gdk_pixbuf_new volá. Začátek textového "
"souboru vypadá nějak takto:"

#. (itstool) path: section/code
#: C/massif.page:69
#, no-wrap
msgid ""
"\n"
"Command: ./swell-foop\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"
"Příkaz: ./swell-foop \n"
"\n"
"== 0 ===========================\n"
"Funkce pro alokaci haldy zodpovídají za 90,40% měřeného časoprostoru\n"
"\n"
"Voláno z:\n"
"  28.8% : 0x6BF83A: gdk_pixbuf_new (v /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
"\n"
"    6.1% : 0x5A32A5: g_strdup (v /usr/lib/libglib-2.0.so.0.400.6)\n"
"\n"
"    5.9% : 0x510B3C: (uvnitř /usr/lib/libfreetype.so.6.3.7)\n"
"\n"
"    3.5% : 0x2A4A6B: __gconv_open (v /lib/tls/libc-2.3.3.so)\n"
"        "

#. (itstool) path: section/p
#: C/massif.page:84
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 ""
"Řádek se znaky „=“ uvádí, jak hluboko v zásobníku sledování jsme zanoření, v "
"tomto konkrétním případě jsem úplně nahoře. Následuje seznam nejnáročnějších "
"uživatelů paměti v sestupném pořadí podle časoprostoru. Časoprostor je "
"veličina představující jak moc paměti je použito a jako dlouho je použita. "
"Odpovídá to ploše pásu v grafu. Tato část souboru nám říká, co již víme: "
"nejvíce časoprostoru si zabrala funkce gdk_pisbuf_new. Abychom věděli, co "
"gdk_pixbuf_new volá, musíme hledat v textovém souboru dále:"

#. (itstool) path: section/code
#: C/massif.page:87
#, 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 (swell-foop.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"
"Kontext zodpovídá za 28,8% měřeného časového prostoru\n"
"  0x6BF83A: gdk_pixbuf_new (v /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
"  0x3A998998: (uvnitř /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
"  0x6C2760: (uvnitř /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
"  0x6C285E: gdk_pixbuf_new_from_file (v /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
"\n"
"Voláno z:\n"
"  27.8% : 0x804C1A3: load_scenario (swell-foop.c:463)\n"
"\n"
"    0.9% : 0x3E8095E: (uvnitř /usr/lib/libgnomeui-2.so.0.792.0)\n"
"\n"
"  a 1 dalšího nedůležitého místa\n"
"        "

#. (itstool) path: section/p
#: C/massif.page:102
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 <app>Swell Foop</app> code. From this listing, we can see instantly "
"that the problem code is load_scenario."
msgstr ""
"První řádek nám říká, že jsme zanoření do čtvrté úrovně v zásobníku. Níže je "
"seznam volání funkcí, které vedou odtud na gdk_pixbuf_new. Nakonec je zde "
"seznam funkcí, které jsou o další úroveň níže a volají tyto funkce. Jsou zde "
"také samozřejmě  položky pro úrovně 1, 2 a 3, ale toto je první úroveň, "
"která opravdu zasahuje přes kód GDK do kódu <app>Swell Foop</app>. Z tohoto "
"seznamu můžeme ihned vidět, že problémovým kódem je load_scenario."

#. (itstool) path: section/p
#: C/massif.page:105
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 ""
"Nyní, když víme, která část našeho kódu používá všechen časoprostor, můžeme "
"se na ni podívat a zjistit proč. Ukáže se, že load_scenario načítá pixbuf ze "
"souboru a potom nikdy neuvolní paměť. Tím mám zjištěno, kde je v kódu "
"problém a muže jej začít opravovat."

#. (itstool) path: section/title
#: C/massif.page:110
msgid "Acting on the Results"
msgstr "Využití výsledků"

#. (itstool) path: section/p
#: C/massif.page:111
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 ""
"Omezení spotřeby časoprostoru je dobré, ale existují dva způsoby jak jej "
"zredukovat a nejsou rovnocenné. Buď můžete omezit množství alokované paměti "
"nebo omezit dobu, po kterou je alokováno. Na chvíli si představte modelový "
"systém, ve kterém běží jen dva procesy. Oba procesy využívají téměř všechnu "
"fyzickou paměť a když ji vyčerpají celou, začne systém odkládat na disk a "
"vše se zpomalí. Je zjevné, že když omezíme použití paměti rovnoměrně každým "
"z obou procesů, mohou klidně běžet naráz, aniž by bylo potřeba odkládat na "
"disk. Když místo toho omezíme čas, po který je paměť alokována, rovnoměrně u "
"obou programů, mohou opět běžet v klidu současně, ale jen ve chvílích, kdy "
"se nesejdou jejich největší požadavky na paměť. Proto je lepší omezit "
"množství alokované paměti."

#. (itstool) path: section/p
#: C/massif.page:114
msgid ""
"Unfortunately, the choice of optimization is also constrained by the needs "
"of the program. The size of the pixbuf data in <app>Swell Foop</app> 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. The image below shows the <app>Massif</app> analysis of <app>Swell "
"Foop</app> after being altered to dispose of the pixbufs once the images "
"have been loaded into the X server."
msgstr ""
"Bohužel je volba optimalizace odvislá i od potřeb programu. Velikost dat "
"pixbuf v aplikaci <app>Swell Foop</app> je dána velikostí grafiky hry a "
"nelze ji jednoduše zmenšit. Může být ale značně omezeno množství času, po "
"který je načtena v paměti. Obrázek níže ukazuje analýzu provedenou aplikací "
"<app>Massif</app> pro program <app>Swell Foop</app> po úpravě vedoucí k "
"uvolnění pixbuf, jakmile jsou obrázky načteny na X server."

#. (itstool) path: figure/title
#: C/massif.page:123
msgid ""
"<app>Massif</app> output for the optimized <app>Swell Foop</app> program."
msgstr ""
"Výstup z aplikace <app>Massif</app> pro optimalizovanou verzi programu "
"<app>Swell Foop</app>."

#. (itstool) path: figure/media
#. This is a reference to an external file such as an image or video. When
#. the file changes, the md5 hash will change to let you know you need to
#. update your localized copy. The msgstr is not used at all. Set it to
#. whatever you like once you have updated your copy of the file.
#: C/massif.page:124
msgctxt "_"
msgid ""
"external ref='figures/massif-after.png' "
"md5='36d1b4ad7ab49b28b69ad3eabbaa7069'"
msgstr ""
"external ref='figures/massif-after.png' "
"md5='36d1b4ad7ab49b28b69ad3eabbaa7069'"

#. (itstool) path: section/p
#: C/massif.page:126
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 were run together the "
"chances of the peak memory usage coinciding, and hence the risk of swapping, "
"would be quite low."
msgstr ""
"Využití časoprostoru funkcí gdk_pixbuf_new představuje nyní tenčí pás, který "
"jen zřídka povyskočí (je teď o šestnáct pozic níž a vyplněný purpurovou "
"barvou). Jako bonus poklesl špičkový odběr paměti o 200 kB, protože špička "
"se objeví před dalšími alokacemi paměti. Pokud běží naráz dva takové podobné "
"procesy, je šance, že takové dvě paměťové špičky nastanou naráz, a tím "
"vznikne riziko odkládání na disk, docela malá."

#. (itstool) path: section/p
#: C/massif.page:129
msgid ""
"Can we do better ? A quick examination of <app>Massif</app>'s text output "
"reveals: g_strdup to be the new major offender."
msgstr ""
"Můžeme to udělat lépe? Rychlý průzkum textového výstupu <app>Massif</app> "
"odhalí že: nový hlavní viník je g_strdup."

#. (itstool) path: section/code
#: C/massif.page:132
#, no-wrap
msgid ""
"\n"
"Command: ./swell-foop\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"
"Příkaz: ./swell-foop\n"
"\n"
"== 0 ===========================\n"
"Funkce pro alokaci haldy zodpovídají za 87,6% měřeného časoprostoru\n"
"\n"
"Voláno z:\n"
"    7.7% : 0x5A32A5: g_strdup (v /usr/lib/libglib-2.0.so.0.400.6)\n"
"\n"
"    7.6% : 0x43BC9F: (uvnitř /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
"\n"
"    6.9% : 0x510B3C: (uvnitř /usr/lib/libfreetype.so.6.3.7)\n"
"\n"
"    5.2% : 0x2A4A6B: __gconv_open (v /lib/tls/libc-2.3.3.so)\n"
"        "

#. (itstool) path: section/p
#: C/massif.page:147
msgid ""
"If we look closer though we see that it is called from many, many, places."
msgstr ""
"Když se na to podíváme blíže, uvidíme, že je volán na mnoha, opravdu mnoha "
"místech."

#. (itstool) path: section/code
#: C/massif.page:150
#, 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"
"Kontext zodpovídá za 7,7% měřeného časového prostoru\n"
"  0x5A32A5: g_strdup (v /usr/lib/libglib-2.0.so.0.400.6)\n"
"\n"
"Called from:\n"
"    1.8% : 0x8BF606: gtk_icon_source_copy (v /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
"\n"
"    1.1% : 0x67AF6B: g_param_spec_internal (v /usr/lib/libgobject-2.0.so.0.400.6)\n"
"\n"
"    0.9% : 0x91FCFC: (uvnitř /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
"\n"
"    0.8% : 0x57EEBF: g_quark_from_string (v /usr/lib/libglib-2.0.so.0.400.6)\n"
"\n"
"  a 155 dalších nedůležitých míst\n"
"        "

#. (itstool) path: section/p
#: C/massif.page:166
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 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 ""
"Nyní stojíme oproti klesající návratnost naší snahy o optimalizaci. Graf nám "
"poradí jiný možný přístup: Pásy „ostatní“ a „správa haldy“ jsou docela "
"velké. To nám říká, že je zde spousta malých alokací prováděných na různých "
"místech. Odstranění něčeho takového může být obtížné, ale když je sloučíme "
"do jediné alokace, může být větší a „správa haldy“ se tím zmenší."

#. (itstool) path: section/title
#: C/massif.page:171
msgid "Caveats"
msgstr "Upozornění"

#. (itstool) path: section/p
#: C/massif.page:172
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 ""
"Je zde pár věcí, na které je třeba si dávat pozor: Zaprvé, časové úseky jsou "
"uváděny jako procentuální část, musíte je vztáhnout na celkovou velikost "
"programu, abyste mohli usoudit, zda množství paměti stojí za sledování. "
"Dobrý je k tomu graf s hodnotami v kilobajtech na svislé ose."

#. (itstool) path: section/p
#: C/massif.page:175
msgid ""
"Secondly, <app>Massif</app> 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 <app>Massif</app>. In the <app>Swell Foop</app> 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 <link href=\"http://www.freedesktop.org/Software/"
"xrestop\">xrestop</link> program."
msgstr ""
"Zadruhé, aplikace <app>Massif</app> bere v úvahu jen paměť použitou vašim "
"vlastním programem. Zdroje jako pixelové mapy jsou uložené na X serveru a "
"aplikace <app>Massif</app> je nebere v úvahu. V ukázkovém programu "
"<app>Swell Foop</app> máme právě jen přesuny spotřeby paměti ze strany "
"klienta do pixelových map na straně serveru. Dokonce je tu nárůst výkonu, "
"přestože tím vlastně švindlujeme. Uchováním obrazových dat na X serveru "
"grafické rutiny zrychluje a odstraňuje spoustu meziprocesové komunikace. "
"Mimo to jsou pixelové mapy uchované v nativním grafickém formátu, který je "
"povětšinou více kompaktní než 32bitový RGBA formát používaný u gdk_pixbuf. K "
"měření účinnosti pixelových map a ostatních zdrojů X serveru použijte "
"program <ulink url=\"http://www.freedesktop.org/Software/xrestop\">xrestop</"
"ulink>."