亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? memory_chunks.sgml

?? GLIB-C的最新源代碼
?? SGML
字號(hào):
<!-- ##### SECTION Title ##### -->Memory Chunks<!-- ##### SECTION Short_Description ##### -->deprecated way to allocate groups of equal-sized chunks of memory.<!-- ##### SECTION Long_Description ##### --><para>Memory chunks provide an space-efficient way to allocate equal-sized pieces of memory, called atoms. However, due to the administrative overhead (in particular for #G_ALLOC_AND_FREE, and when used from multiple threads), they are in practise often slower than direct use of g_malloc().Therefore, memory chunks have been deprecated in favor of the <link linkend="glib-Memory-Slices">slice allocator</link>,which has been added in 2.10. All internal uses of memory chunks inGLib have been converted to the <literal>g_slice</literal> API.</para><para>There are two types of memory chunks, #G_ALLOC_ONLY, and #G_ALLOC_AND_FREE.<itemizedlist><listitem><para>#G_ALLOC_ONLY chunks only allow allocation of atoms. The atoms can neverbe freed individually. The memory chunk can only be free in its entirety.</para></listitem><listitem><para>#G_ALLOC_AND_FREE chunks do allow atoms to be freed individually.The disadvantage of this is that the memory chunk has to keep track of whichatoms have been freed. This results in more memory being used and a slightdegradation in performance.</para></listitem></itemizedlist></para><para>To create a memory chunk use g_mem_chunk_new() or the convenience macrog_mem_chunk_create().</para><para>To allocate a new atom use g_mem_chunk_alloc(), g_mem_chunk_alloc0(),or the convenience macros g_chunk_new() or g_chunk_new0(). </para><para>To free an atom use g_mem_chunk_free(), or the convenience macrog_chunk_free(). (Atoms can only be freed if the memory chunk is createdwith the type set to #G_ALLOC_AND_FREE.)</para><para>To free any blocks of memory which are no longer being used, useg_mem_chunk_clean(). To clean all memory chunks, use g_blow_chunks().</para><para>To reset the memory chunk, freeing all of the atoms, use g_mem_chunk_reset().</para><para>To destroy a memory chunk, use g_mem_chunk_destroy().</para><para>To help debug memory chunks, use g_mem_chunk_info() and g_mem_chunk_print().</para><example><title>Using a <structname>GMemChunk</structname></title><programlisting>  GMemChunk *mem_chunk;  gchar *mem[10000];  gint i;  /* Create a GMemChunk with atoms 50 bytes long, and memory blocks holding     100 bytes. Note that this means that only 2 atoms fit into each memory     block and so isn't very efficient. */  mem_chunk = g_mem_chunk_new ("test mem chunk", 50, 100, G_ALLOC_AND_FREE);  /* Now allocate 10000 atoms. */  for (i = 0; i &lt; 10000; i++)    {      mem[i] = g_chunk_new (gchar, mem_chunk);      /* Fill in the atom memory with some junk. */      for (j = 0; j &lt; 50; j++)	mem[i][j] = i * j;    }  /* Now free all of the atoms. Note that since we are going to destroy the     GMemChunk, this wouldn't normally be used. */  for (i = 0; i &lt; 10000; i++)    {      g_mem_chunk_free (mem_chunk, mem[i]);    }  /* We are finished with the GMemChunk, so we destroy it. */  g_mem_chunk_destroy (mem_chunk);</programlisting></example><example><title>Using a <structname>GMemChunk</structname> with data structures</title><programlisting>  GMemChunk *array_mem_chunk;  GRealArray *array;  /* Create a GMemChunk to hold GRealArray structures, using the     g_mem_chunk_create(<!-- -->) convenience macro. We want 1024 atoms in each     memory block, and we want to be able to free individual atoms. */  array_mem_chunk = g_mem_chunk_create (GRealArray, 1024, G_ALLOC_AND_FREE);  /* Allocate one atom, using the g_chunk_new(<!-- -->) convenience macro. */  array = g_chunk_new (GRealArray, array_mem_chunk);  /* We can now use array just like a normal pointer to a structure. */  array->data            = NULL;  array->len             = 0;  array->alloc           = 0;  array->zero_terminated = (zero_terminated ? 1 : 0);  array->clear           = (clear ? 1 : 0);  array->elt_size        = elt_size;  /* We can free the element, so it can be reused. */  g_chunk_free (array, array_mem_chunk);  /* We destroy the GMemChunk when we are finished with it. */  g_mem_chunk_destroy (array_mem_chunk);</programlisting></example><!-- ##### SECTION See_Also ##### --><para></para><!-- ##### SECTION Stability_Level ##### --><!-- ##### STRUCT GMemChunk ##### --><para>The #GMemChunk struct is an opaque data structure representing a memorychunk. It should be accessed only through the use of the following functions.</para><!-- ##### MACRO G_ALLOC_AND_FREE ##### --><para>Specifies the type of a #GMemChunk.Used in g_mem_chunk_new() and g_mem_chunk_create() to specify that atomswill be freed individually.</para><!-- ##### MACRO G_ALLOC_ONLY ##### --><para>Specifies the type of a #GMemChunk.Used in g_mem_chunk_new() and g_mem_chunk_create() to specify that atomswill never be freed individually.</para><!-- ##### FUNCTION g_mem_chunk_new ##### --><para>Creates a new #GMemChunk.</para>@name: a string to identify the #GMemChunk. It is not copied so itshould be valid for the lifetime of the #GMemChunk. It is only used ing_mem_chunk_print(), which is used for debugging.@atom_size: the size, in bytes, of each element in the #GMemChunk.@area_size: the size, in bytes, of each block of memory allocated to containthe atoms.@type: the type of the #GMemChunk.#G_ALLOC_AND_FREE is used if the atoms will be freed individually.#G_ALLOC_ONLY should be used if atoms will never be freed individually.#G_ALLOC_ONLY is quicker, since it does not need to track free atoms,but it obviously wastes memory if you no longer need many of the atoms.@Returns: the new #GMemChunk.@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice allocator</link>  instead<!-- ##### FUNCTION g_mem_chunk_alloc ##### --><para>Allocates an atom of memory from a #GMemChunk.</para>@mem_chunk: a #GMemChunk.@Returns: a pointer to the allocated atom.@Deprecated: 2.10: Use g_slice_alloc() instead<!-- ##### FUNCTION g_mem_chunk_alloc0 ##### --><para>Allocates an atom of memory from a #GMemChunk, setting the memory to 0.</para>@mem_chunk: a #GMemChunk.@Returns: a pointer to the allocated atom.@Deprecated: 2.10:  Use g_slice_alloc0() instead<!-- ##### FUNCTION g_mem_chunk_free ##### --><para>Frees an atom in a #GMemChunk.This should only be called if the #GMemChunk was created with#G_ALLOC_AND_FREE. Otherwise it will simply return.</para>@mem_chunk: a #GMemChunk.@mem: a pointer to the atom to free.@Deprecated: 2.10: Use g_slice_free1() instead<!-- ##### FUNCTION g_mem_chunk_destroy ##### --><para>Frees all of the memory allocated for a #GMemChunk.</para>@mem_chunk: a #GMemChunk.@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead<!-- ##### MACRO g_mem_chunk_create ##### --><para>A convenience macro for creating a new #GMemChunk.It calls g_mem_chunk_new(), using the given type to create the #GMemChunkname. The atom size is determined using <function>sizeof()</function>, and thearea size is calculated by multiplying the @pre_alloc parameter withthe atom size.</para>@type: the type of the atoms, typically a structure name.@pre_alloc: the number of atoms to store in each block of memory.@alloc_type: the type of the #GMemChunk.#G_ALLOC_AND_FREE is used if the atoms will be freed individually.#G_ALLOC_ONLY should be used if atoms will never be freed individually.#G_ALLOC_ONLY is quicker, since it does not need to track free atoms,but it obviously wastes memory if you no longer need many of the atoms.@Returns: the new #GMemChunk.@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead<!-- ##### MACRO g_chunk_new ##### --><para>A convenience macro to allocate an atom of memory from a #GMemChunk.It calls g_mem_chunk_alloc() and casts the returned atom to a pointer tothe given type, avoiding a type cast in the source code.</para>@type: the type of the #GMemChunk atoms, typically a structure name.@chunk: a #GMemChunk.@Returns: a pointer to the allocated atom, cast to a pointer to @type.@Deprecated: 2.10: Use g_slice_new() instead<!-- ##### MACRO g_chunk_new0 ##### --><para>A convenience macro to allocate an atom of memory from a #GMemChunk.It calls g_mem_chunk_alloc0() and casts the returned atom to a pointer tothe given type, avoiding a type cast in the source code.</para>@type: the type of the #GMemChunk atoms, typically a structure name.@chunk: a #GMemChunk.@Returns: a pointer to the allocated atom, cast to a pointer to @type.@Deprecated: 2.10: Use g_slice_new0() instead<!-- ##### MACRO g_chunk_free ##### --><para>A convenience macro to free an atom of memory from a #GMemChunk.It simply switches the arguments and calls g_mem_chunk_free()It is included simply to complement the other convenience macros, g_chunk_new()and g_chunk_new0().</para>@mem: a pointer to the atom to be freed.@mem_chunk: a #GMemChunk.@Deprecated: 2.10: Use g_slice_free() instead<!-- ##### FUNCTION g_mem_chunk_reset ##### --><para>Resets a GMemChunk to its initial state.It frees all of the currently allocated blocks of memory.</para>@mem_chunk: a #GMemChunk.@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead<!-- ##### FUNCTION g_mem_chunk_clean ##### --><para>Frees any blocks in a #GMemChunk which are no longer being used.</para>@mem_chunk: a #GMemChunk.@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead<!-- ##### FUNCTION g_blow_chunks ##### --><para>Calls g_mem_chunk_clean() on all #GMemChunk objects.</para>@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead<!-- ##### FUNCTION g_mem_chunk_info ##### --><para>Outputs debugging information for all #GMemChunk objects currently in use.It outputs the number of #GMemChunk objects currently allocated,and calls g_mem_chunk_print() to output information on each one.</para>@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead<!-- ##### FUNCTION g_mem_chunk_print ##### --><para>Outputs debugging information for a #GMemChunk.It outputs the name of the #GMemChunk (set with g_mem_chunk_new()),the number of bytes used, and the number of blocks of memory allocated.</para>@mem_chunk: a #GMemChunk.@Deprecated: 2.10: Use the <link linkend="glib-Memory-Slices">slice   allocator</link> instead

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久国产精品| 欧美视频精品在线| 午夜伊人狠狠久久| 日韩免费在线观看| 91精品国产色综合久久| 蜜桃一区二区三区四区| 欧美国产日韩一二三区| 欧美日韩成人一区| 高清视频一区二区| 在线免费亚洲电影| 国产乱人伦精品一区二区在线观看 | 成人性生交大片免费看在线播放 | 国产不卡视频在线观看| 亚洲成人综合在线| 久久精品在这里| 欧美日韩大陆在线| 波多野结衣中文一区| 蜜臀va亚洲va欧美va天堂| 专区另类欧美日韩| 久久五月婷婷丁香社区| 欧美日韩和欧美的一区二区| 国产jizzjizz一区二区| 秋霞国产午夜精品免费视频| 中文字幕在线不卡国产视频| 91精品国产综合久久久久久久| aaa欧美色吧激情视频| 国产一区二区三区精品视频 | 日韩一区二区精品在线观看| 欧美伊人久久大香线蕉综合69| 日韩一级片网站| 欧美在线999| 91成人看片片| 91浏览器入口在线观看| 成人国产亚洲欧美成人综合网| 精品无码三级在线观看视频| 毛片基地黄久久久久久天堂| 婷婷激情综合网| 日产国产高清一区二区三区| 亚洲国产精品人人做人人爽| 一区二区免费看| 亚洲主播在线观看| 一区二区日韩电影| 亚洲超碰97人人做人人爱| 亚洲成人综合在线| 丝袜美腿高跟呻吟高潮一区| 视频在线观看一区二区三区| 视频一区在线播放| 日本亚洲三级在线| 久久电影网站中文字幕| 国产在线不卡一区| 国产aⅴ精品一区二区三区色成熟| 国产精品性做久久久久久| 成人一区二区三区视频| 色综合中文综合网| 欧美在线色视频| 91精品国产一区二区三区| 亚洲午夜视频在线| 视频一区二区三区入口| 久久66热re国产| 成人自拍视频在线观看| 色综合视频一区二区三区高清| 欧美三级一区二区| 欧美成人精精品一区二区频| 国产肉丝袜一区二区| 亚洲人成网站精品片在线观看| 亚洲精品videosex极品| 蜜芽一区二区三区| av资源网一区| 欧美电影免费观看高清完整版在线观看| 久久久99免费| 亚洲成人自拍网| 成人黄色一级视频| 日韩三级视频在线观看| 1024亚洲合集| 国产在线不卡一卡二卡三卡四卡| 91婷婷韩国欧美一区二区| 久久综合色8888| 日精品一区二区三区| 不卡的av电影在线观看| 精品国产自在久精品国产| 午夜精品久久久久久久久| 国产精品亚洲视频| 日韩精品一区二区三区四区视频 | 91精品福利在线一区二区三区| 中文字幕精品在线不卡| 麻豆91在线播放免费| 欧美猛男男办公室激情| 亚洲精品综合在线| 国产精品毛片无遮挡高清| 极品少妇xxxx精品少妇| 91精品久久久久久久99蜜桃| 亚洲一区二区四区蜜桃| av一区二区不卡| 国产精品成人网| 94色蜜桃网一区二区三区| 一区在线中文字幕| 91亚洲午夜精品久久久久久| 亚洲欧美在线视频| 一本色道久久加勒比精品 | 国产成人在线色| 久久久www成人免费毛片麻豆| 久久精品二区亚洲w码| 精品国产乱码久久久久久浪潮| 欧美aa在线视频| 国产午夜精品福利| 成人激情午夜影院| 日韩一区日韩二区| 欧美影视一区在线| 婷婷综合另类小说色区| 日韩一区二区麻豆国产| 狠狠色2019综合网| 国产欧美久久久精品影院| 成人美女视频在线观看18| 一区二区三区在线视频免费| 欧美日免费三级在线| 伦理电影国产精品| 国产精品美女www爽爽爽| 在线观看欧美黄色| 日本不卡在线视频| 国产精品午夜电影| 欧美日韩亚洲综合在线| 韩日av一区二区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美激情中文不卡| 欧美日韩免费一区二区三区| 精品无人码麻豆乱码1区2区| 国产精品久久久久7777按摩| 欧美专区在线观看一区| 国模套图日韩精品一区二区| 亚洲视频一区在线| 欧美精品一区二区三区久久久| 色美美综合视频| 国产成人精品综合在线观看| 亚洲va国产天堂va久久en| 国产欧美日韩综合精品一区二区| 欧洲国产伦久久久久久久| 国内成人免费视频| 五月婷婷另类国产| 国产欧美精品一区| 欧美一卡在线观看| 日本高清不卡在线观看| 国产精品1区2区| 秋霞午夜鲁丝一区二区老狼| 亚洲精品免费一二三区| 国产日产精品一区| 日韩欧美一区二区视频| 欧美私人免费视频| 国产视频一区二区在线| 欧美成人三级在线| 3atv在线一区二区三区| 欧美群妇大交群中文字幕| 日本精品免费观看高清观看| 成人av电影免费观看| 成人性生交大合| 国产福利一区二区| 国内久久精品视频| 国产成人综合亚洲91猫咪| 国产在线看一区| 韩国一区二区三区| 国产一区二区三区久久悠悠色av| 麻豆精品一二三| 国产黑丝在线一区二区三区| 国产精品一区久久久久| 成人精品免费看| 色婷婷av久久久久久久| 欧美色图片你懂的| 欧美美女直播网站| 日韩一区二区三区免费看| 欧美一区午夜精品| 久久综合国产精品| 国产精品另类一区| 1024成人网| 日韩中文字幕麻豆| 精彩视频一区二区| 成人免费视频一区| 欧美私人免费视频| 精品av综合导航| 亚洲色图欧美激情| 日日夜夜精品视频免费| 国产一区欧美日韩| 94-欧美-setu| 欧美一区二区三区爱爱| 久久久91精品国产一区二区精品 | 在线观看日韩一区| 日韩网站在线看片你懂的| 国产精品污污网站在线观看| 亚洲成av人综合在线观看| 国内精品在线播放| 欧洲精品视频在线观看| 精品国产一二三| 亚洲欧美乱综合| 精久久久久久久久久久| 91极品美女在线| 久久久久久毛片| 日韩精品国产欧美| 国产999精品久久| 欧美精品在线一区二区三区| 欧美激情一区二区三区在线| 亚洲福利视频一区| 成人教育av在线|