File: performance-localization.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (127 lines) | stat: -rw-r--r-- 6,115 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
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="performance.localization">
    <title>Internationalisierung (I18n) und Lokalisierung (L10n)</title>

    <para>
        Internationalisierte und Lokalisierte Sites sind ein fantastischer Weg um seine
        Zuschaueranzahl zu expandieren und sicherzustellen das alle Besucher die Information
        bekommen die Sie benötigen. Trotzdem kommt es oft zu einem Geschwindigkeitsverlust. Anbei
        sind einige Strategien die man verwenden kann um den Overhead von I18n und L10n zu
        verkleinern.
    </para>

    <sect2 id="performance.localization.translationadapter">
        <title>Welchen Übersetzungsadapter sollte ich verwenden?</title>

        <para>
            Nicht alle Übersetzungadapter sind gleich gemacht. Einige haben mehr Feature als
            andere, und einige sind performanter als andere. Zusätzlich kann es sein das man
            geschäftliche Notwendigkeiten hat die einen zwingen einen bestimmten Adapter zu
            verwenden. Trotzdem, welcher Adapter ist der schnellste, wenn man die Wahl hat?
        </para>

        <sect3 id="performance.localization.translationadapter.fastest">
            <title>Verwende nicht-XML Übersetzungsadapter für die größte Geschwindigkeit</title>

            <para>
                Zend Framework wird mit einer Vielzahl von Übersetzungsadaptern ausgeliefert. Die
                Hälfte von Ihnen verwenden ein <acronym>XML</acronym> Format, welches viel Speicher
                benötigt und eine Geschwindkeitseinbuße bedeutet. Glücklicherweise gibt es
                verschiedene Adapter die andere Formate verwenden, die viel schneller geparst
                werden können. In der Reihenfolge Ihrer Geschwindigkeit, vom Schnellsten zum
                Langsamsten, sind das:
            </para>

            <itemizedlist>
                <listitem>
                    <para>
                        <emphasis>Array</emphasis>: Das ist der Schnellste, weil er, von seiner
                        Definition her, sofort in ein natives <acronym>PHP</acronym> Format geparst
                        und sofort eingefügt wird.
                    </para>
                </listitem>

                <listitem>
                    <para>
                        <emphasis><acronym>CSV</acronym></emphasis>: Verwendet
                        <methodname>fgetcsv()</methodname> um eine <acronym>CSV</acronym> Datei zu
                        parsen und transformiert es in ein natives <acronym>PHP</acronym> Format.
                    </para>
                </listitem>

                <listitem>
                    <para>
                        <emphasis><acronym>INI</acronym></emphasis>: Verwendet
                        <methodname>parse_ini_file()</methodname> um eine <acronym>INI</acronym>
                        Datei zu lesen und Sie in ein natives <acronym>PHP</acronym> Format zu
                        transformieren. Dieser und der <acronym>CSV</acronym> Adapter sind in Ihrer
                        Geschwindigkeit ziemlich identisch.
                    </para>
                </listitem>

                <listitem>
                    <para>
                        <emphasis>Gettext</emphasis>: Der Gettext Adapter von Zend Framework
                        verwendet <emphasis>nicht</emphasis> die Gettext Erweiterung da diese nicht
                        Threadsicher ist und es nicht erlaubt mehr als ein Gebietsschema pro Server
                        zu definieren. Als Ergebnis, ist ist er langsamer als die Gettext
                        Erweiterung direkt, aber, weil das Gettext Format binär ist, ist es
                        schneller geparst als <acronym>XML</acronym>.
                    </para>
                </listitem>
            </itemizedlist>

            <para>
                Wenn hohe Geschwindigkeit eine der eigenen Bedenken sind, empfehlen wir die
                Verwendung einer der obigen Adapter.
            </para>
        </sect3>
    </sect2>

    <sect2 id="performance.localization.cache">
        <title>Wie kann ich Übersetzungen und Lokalisierungen sogar noch schneller machen?</title>

        <para>
            Aus Geschäftsgründen kann es möglich sein, das man auf einen
            <acronym>XML</acronym>-basierenden Übersetzungsadapter limitiert ist. Oder vielleicht
            will man die Dinge sogar noch schneller machen. Oder vielleicht will man L10n
            Operationen schneller machen. Wie kann man das tun?
        </para>

        <sect3 id="performance.localization.cache.usage">
            <title>Verwenden von Übersetzungs und Lokalisierungs Caches</title>

            <para>
                Beide, <classname>Zend_Translate</classname> und <classname>Zend_Locale</classname>
                implementieren eine Caching Funktionalität welche die Geschwindigkeit großartig
                verbessern kann. In jedem der Fälle ist dass das Nadelöhr typischerweise das Lesen
                der Dateien, nicht das effektive Nachschauen; die Verwendung eines Caches eliminiert
                die Notwendigkeit die Übersetzungsdateien und/oder Lokalisierungsdateien zu lesen.
            </para>

            <para>
                Man kann an den folgenden Orten mehr über das Cachen von Übersetzungs und
                Lokalisierungsstrings nachlesen:
            </para>

            <itemizedlist>
                <listitem>
                    <para>
                        <link
                            linkend="zend.translate.adapter.caching"><classname>Zend_Translate</classname>
                            Adapter Caching</link>
                    </para>
                </listitem>

                <listitem>
                    <para>
                        <link linkend="zend.locale.cache"><classname>Zend_Locale</classname>
                        Caching</link>
                    </para>
                </listitem>
            </itemizedlist>
        </sect3>
    </sect2>
</sect1>