"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قام ChatGPT بمقارنة استخدام الذاكرة مع مولدات PHP وبدونها لمجموعات البيانات الكبيرة.

قام ChatGPT بمقارنة استخدام الذاكرة مع مولدات PHP وبدونها لمجموعات البيانات الكبيرة.

تم النشر بتاريخ 2024-08-05
تصفح:386

ChatGPT compared the memory usage with and without PHP generators for large datasets.

يمكن أن يساعد تصور استخدام الذاكرة مع وبدون استخدام المولدات في فهم فوائد الكفاءة. فيما يلي مقارنة لاستخدام الذاكرة في سيناريوهين:

  1. بدون استخدام المولدات (تحميل جميع البيانات إلى الذاكرة مرة واحدة).
  2. استخدام المولدات (تحميل عنصر واحد في كل مرة).

السيناريو 1: بدون مولدات

لنفترض أن لدينا دالة بسيطة تقوم بإرجاع مجموعة من الأرقام من 0 إلى 999,999. تقوم هذه الوظيفة بتحميل جميع البيانات إلى الذاكرة مرة واحدة.

استخدام الذاكرة (بدون مولدات)

عندما يتم استدعاء الدالة getNumbersArray:

  • الذاكرة الأولية: منخفضة، لا يوجد سوى إعداد الوظيفة والبيئة في الذاكرة.
  • أثناء التنفيذ: أثناء تشغيل الحلقة، يزداد استخدام الذاكرة خطيًا، مع الاحتفاظ بجميع الأرقام البالغ عددها 1,000,000 في المصفوفة.
  • ذروة الذاكرة: عالية جدًا، وتحتفظ بجميع البيانات الموجودة في الذاكرة في وقت واحد.
  • بعد التنفيذ: تظل الذاكرة عالية حتى ينتهي البرنامج النصي أو يتم إلغاء تعيين المصفوفة بشكل صريح.
|            Memory Usage Without Generators           |
|------------------------------------------------------|
| Start    | *                                         |
|          | **                                        |
|          | ***                                       |
|          | ****                                      |
|          | *****                                     |
|          | ******                                    |
|          | *******                                   |
| ...      | ******************************************|
| End      | ******************************************|
|------------------------------------------------------|

السيناريو 2: استخدام المولدات

الآن، نستخدم دالة المولد لإنتاج أرقام واحدة تلو الأخرى.

استخدام الذاكرة (باستخدام المولدات)

عندما يتم استدعاء رقم وظيفة المولدGenerator:

  • الذاكرة الأولية: منخفضة، لا يوجد سوى إعداد الوظيفة والبيئة في الذاكرة.
  • أثناء التنفيذ: يظل استخدام الذاكرة منخفضًا حيث يتم الاحتفاظ برقم واحد فقط في الذاكرة في المرة الواحدة.
  • ذاكرة الذروة: منخفضة، عنصر واحد فقط بالإضافة إلى الحمل الزائد للمولد.
  • بعد التنفيذ: ينخفض ​​استخدام الذاكرة مباشرة بعد انتهاء التكرار.
|            Memory Usage With Generators              |
|------------------------------------------------------|
| Start    | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
| ...      | *                                         |
| End      | *                                         |
|------------------------------------------------------|

ملخص

  • بدون المولدات: يزداد استخدام الذاكرة مع حجم مجموعة البيانات ويظل مرتفعًا طوال تنفيذ البرنامج النصي.
  • مع المولدات: يظل استخدام الذاكرة ثابتًا ومنخفضًا، بغض النظر عن حجم مجموعة البيانات، لأنه تتم معالجة عنصر واحد فقط في المرة الواحدة.

توفر المولدات فوائد كبيرة في كفاءة الذاكرة، خاصة بالنسبة لمجموعات البيانات الكبيرة، من خلال إنتاج عنصر واحد في كل مرة والحفاظ على استخدام منخفض للذاكرة طوال تنفيذ البرنامج النصي.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/saaberdev/chatgpt-explained-how-we-can-optimize-memory-usage-by-using-php-generators-for-large-datasets-4e5h?1إذا كان هناك في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3