Symbian3/SDK/Source/GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706" xml:lang="en"><title>Caching</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    13 <p>In Symbian OS v9.3 and earlier, index entries were stored in a single index
       
    14 file in a permanent file store and the entire file was loaded into RAM on
       
    15 start up. In Symbian^3 index entries are stored in an SQL database and only
       
    16 the most recently used index entries are cached in RAM. </p>
       
    17 <p>The following figure shows how a client request is completed using the
       
    18 cache functionality in the Message Server. </p>
       
    19 <fig id="GUID-43D2AE30-9221-500A-B934-5D3636168273">
       
    20 <title>           Caching architecture          </title>
       
    21 <image href="GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e284883_href.png" placement="inline"/>
       
    22 </fig>
       
    23 <section id="GUID-D3F3D019-736E-4527-8099-9BE8883CF37C"><title>Creating and
       
    24 maintaining free space in memory</title> <p>Memory allocation to the cache
       
    25 is done incrementally, to reduce the Message Server start up time. When the
       
    26 Message Server starts, only a percentage of the maximum cache size (<codeph>MsvMaximumCacheSize</codeph>)
       
    27 is allocated to cache. The percentage is specified by the <codeph>MsvInitialCacheCreation</codeph> parameter.
       
    28 The next iteration of memory allocation is not initiated until the memory
       
    29 threshold (set using the <codeph>MsvCacheThreshold</codeph> parameter) is
       
    30 reached. The subsequent memory allocation is always done by a low priority
       
    31 active object. </p> <p><b>Example</b> </p> <p>The memory allocation strategy
       
    32 is illustrated in the following figures, based on the default values (shown
       
    33 in the preceding table). </p> <p>When Message Server starts, the cache is
       
    34 created with an initial size of 410KB (40 percent of 1024KB). If 70 percent
       
    35 of the free space in the cache gets used the server allocates an additional
       
    36 205KB (20 percent of 1024). </p> <fig id="GUID-CA4A08C8-C4E8-575F-8F03-F3D1F6579E5F">
       
    37 <image href="GUID-B459E37A-BECE-5087-9827-C93310890674_d0e284915_href.png" placement="inline"/>
       
    38 </fig> <p>Message Server can make two further 205KB allocations which it does
       
    39 as use reaches 70 percent of the memory already allocated. </p> <fig id="GUID-21A40614-046B-56DD-9DDD-34B2F9681B5C">
       
    40 <image href="GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e284923_href.png" placement="inline"/>
       
    41 </fig> <p>If more than 70 percent of the first two allocated memory chunks
       
    42 is used, an additional 20 percent of memory is added to the free space. </p> <fig id="GUID-EBF4FF85-D6D6-518C-9391-C3AFF8821F83">
       
    43 <image href="GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e284931_href.png" placement="inline"/>
       
    44 </fig> </section>
       
    45 </conbody></concept>