تحسين استخدام الذاكرة أثناء العمل مع ملفات كبيرة تحتوي على مجموعات بيانات كبيرة
عند بناء دفتر عمل بمجموعات بيانات كبيرة، أو قراءة ملف إكسل كبير، فإن مقدار الـRAM الذي ستحتاجه العملية دائمًا ما يكون مصدر قلق. هناك تدابير يمكن تكييفها لمواجهة التحدي. يوفر Aspose.Cells لـ Python via .NET بعض الخيارات ذات الصلة ونداءات API لتقليل، تقليل وتحسين استخدام الذاكرة. كما يمكنه مساعدة العملية على العمل بكفاءة أكبر وتشغيلها بشكل أسرع.
استخدام الخيار MemorySetting.MEMORY_PREFERENCE لتحسين استخدام الذاكرة لبيانات الخلايا وتقليل التكلفة الإجمالية للذاكرة. عند بناء مجموعة بيانات كبيرة للخلايا، يمكن أن يوفر مبلغًا معينًا من الذاكرة بالمقارنة بالاستخدام الافتراضي (MemorySetting.NORMAL).
تحسين الذاكرة
قراءة ملفات Excel الكبيرة
توضح المثال التالي كيفية قراءة ملف إكسل كبير بوضع محسن.
from aspose.cells import LoadOptions, MemorySetting, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Specify the LoadOptions | |
opt = LoadOptions() | |
# Set the memory preferences | |
opt.memory_setting = MemorySetting.MEMORY_PREFERENCE | |
# Instantiate the Workbook | |
# Load the Big Excel file having large Data set in it | |
wb = Workbook(dataDir + "Book1.xlsx", opt) |
كتابة ملفات إكسيل الكبيرة
المثال التالي يوضح كيفية كتابة مجموعة بيانات كبيرة إلى ورقة عمل بوضع محسن.
from aspose.cells import MemorySetting, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiate a new Workbook | |
wb = Workbook() | |
# Set the memory preferences | |
# Note: This setting cannot take effect for the existing worksheets that are created before using the below line of code | |
wb.settings.memory_setting = MemorySetting.MEMORY_PREFERENCE | |
# Note: The memory settings also would not work for the default sheet i.e., "Sheet1" etc. automatically created by the Workbook | |
# To change the memory setting of existing sheets, please change memory setting for them manually: | |
cells = wb.worksheets[0].cells | |
cells.memory_setting = MemorySetting.MEMORY_PREFERENCE | |
# Input large dataset into the cells of the worksheet. | |
# Your code goes here. | |
# ......... | |
# Get cells of the newly created Worksheet "Sheet2" whose memory setting is same with the one defined in WorkbookSettings: | |
cells = wb.worksheets.add("Sheet2").cells |
احترس
الخيار الافتراضي، MemorySetting.NORMAL يُطبق على جميع الإصدارات. لبعض الحالات، مثل بناء جدول عمل مع مجموعة بيانات كبيرة للخلايا، يمكن أن يُحسن الخيار MemorySetting.MEMORY_PREFERENCE استخدام الذاكرة ويُقلل من تكلفة الذاكرة للتطبيق. ومع ذلك، قد يُتدنى أداء هذا الخيار في بعض الحالات الخاصة مثلما يلي.
- الوصول العشوائي والمتكرر إلى الخلايا: أكثر تسلسل فعالية للوصول إلى مجموعة الخلايا هو الخلية بالخلية في صف واحد، ثم صف بعد صف. خاصة إذا أمكنك الوصول إلى الصفوف/الخلايا من خلال المدرج المصرف من Cells، RowCollection و Row، سيتم تحقيق أقصى أداء مع MemorySetting.MEMORY_PREFERENCE.
- إدراج وحذف الخلايا والصفوف: يرجى ملاحظة أنه إذا كانت هناك الكثير من عمليات الإدراج/الحذف للخلايا/الصفوف، سيكون التدهور في الأداء ملحوظًا في وضع تفضيل الذاكرة مقارنةً بوضع طبيعي.
- العمل على أنواع الخلايا المختلفة: إذا كانت معظم الخلايا تحتوي على قيم سلسلة أو صيغًا، ستكون تكلفة الذاكرة نفسها كوضع طبيعي ولكن إذا كانت هناك الكثير من الخلايا الفارغة، أو قيم الخلايا تكون رقمية، بولية وما إلى ذلك، فإن الخيار MemorySetting.MEMORY_PREFERENCE سيمنح أداءً أفضل.