第3课

تقنيات تحسين الغاز باستخدام Remix

من المهم أن تتدرب الآن بعد أن أتقنت بعض أساليب تحسين التخزين الأساسية. تفاعل مع الأمثلة المعروضة وجرب إنشاء الأمثلة الخاصة بك. في الجلسة التالية، سنتعمق في تحسين رؤية الوظائف وإعادة استخدام التعليمات البرمجية مع المكتبات. ضع في اعتبارك أن التحسين هو فن وعلم في نفس الوقت. استمر في التجربة!

تحسين التخزين

وتتركز غالبية نفقات الغاز في إيثريوم حول التخزين. عادةً ما تكون كل عملية تغير حالة (تخزين) شبكة إيثريوم مكلفة. ونتيجة لذلك، يمكن أن يؤدي التركيز على كيفية الاحتفاظ بالبيانات والوصول إليها إلى تخفيضات كبيرة في التكاليف. في هذه الجلسة، سنلقي نظرة على بعض الطرق لتحسين التخزين باستخدام Remix.

لماذا التخزين مكلف؟

توفر سلسلة بلوكشين الإيثيريوم تخزينًا دائمًا. سيكون كل شيء يتم حفظه على بلوكتشين متاحًا طالما بقيت بلوكتشين على قيد الحياة، ولكن هذا الدوام يأتي بتكلفة. لا يؤدي تحسين التخزين إلى خفض التكاليف فحسب، بل يضمن أيضًا استخدام الحالة العالمية لإيثريوم بكفاءة.

متغيرات تخزين التعبئة

مقدمة العملة

تقوم Solidity بتخزين المتغيرات في الفتحات. كل فتحة هي 32 بايت. عندما يمكن احتواء المتغيرات داخل فتحة واحدة، يمكن قراءتها أو تحديثها باستخدام عملية SLOAD أو SSTORE واحدة، على التوالي.

كما هو موضح في المثال

ضع في اعتبارك عقدين:

صلابة
//بدون تحسين
صلابة البراغما ^ 0.8.9؛

عقد تخزين غير محسّن {
    uint256 public value1;
    uint256 public value2;
}
صلابة
//مع التحسين
صلابة البراغما ^ 0.8.9؛

التخزين الأمثل للعقد {
    uint128 public value1;
    uint128 public value2;
}
  1. انشر كلا العقدين في Remix ولاحظ اختلافات الغاز عند التفاعل مع متغيراتها.

  2. في الإصدار المحسّن، تشترك كل من value1 و value2 في فتحة واحدة بحجم 32 بايت.

إعادة استخدام فتحات التخزين

مقدمة العملة

عند الانتهاء من فتحة التخزين، وخاصة التخزين المؤقت للبيانات، يمكنك حذف الفتحة أو التخلص منها لاسترداد الغاز.

كما هو موضح في المثال

صلابة
صلابة البراغما ^ 0.8.9؛

مثال استرداد العقد {
 uint256 البيانات المؤقتة العامة؛

 وظيفة تخزين البيانات المؤقتة (بيانات uint256) العامة {
        temporaryData = data;
    }

    وظيفة مسح البيانات المؤقتة () العامة {
        delete temporaryData;
    }
}
  1. انشر هذا العقد في Remix.

  2. قم بتخزين بعض البيانات المؤقتة ثم قم بمسحها.

  3. تحقق من تكلفة الغاز. لاحظ استرداد الغاز الذي تحصل عليه لعملية الحذف.

استخدام الأحداث بدلاً من التخزين للبيانات التاريخية

مقدمة العملة

إذا لم تكن هناك حاجة للوصول إلى البيانات عبر السلسلة، ففكر في تسجيلها كحدث بدلاً من تخزينها. الأحداث أرخص بكثير من عمليات التخزين.

كما هو موضح في المثال

صلابة
صلابة البراغما ^ 0.8.9؛

مثال على حدث العقد {
 بيانات الحدث المخزنة (بيانات uint256)؛

 وظيفة تخزين البيانات (بيانات uint256) العامة {
        emit DataStored(data);
    }
}
  1. قم بنشر العقد والتفاعل معه في Remix.

  2. لاحظ تكاليف الغاز الأرخص عند مقارنتها بالتخزين.

التطلع إلى الأمام

من المهم أن تتدرب الآن بعد أن أتقنت بعض أساليب تحسين التخزين الأساسية. تفاعل مع الأمثلة المعروضة وجرب إنشاء الأمثلة الخاصة بك. في الجلسة التالية، سنتعمق في تحسين رؤية الوظائف وإعادة استخدام التعليمات البرمجية مع المكتبات. ضع في اعتبارك أن التحسين هو فن وعلم في نفس الوقت. استمر في التجربة!

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第3课

تقنيات تحسين الغاز باستخدام Remix

من المهم أن تتدرب الآن بعد أن أتقنت بعض أساليب تحسين التخزين الأساسية. تفاعل مع الأمثلة المعروضة وجرب إنشاء الأمثلة الخاصة بك. في الجلسة التالية، سنتعمق في تحسين رؤية الوظائف وإعادة استخدام التعليمات البرمجية مع المكتبات. ضع في اعتبارك أن التحسين هو فن وعلم في نفس الوقت. استمر في التجربة!

تحسين التخزين

وتتركز غالبية نفقات الغاز في إيثريوم حول التخزين. عادةً ما تكون كل عملية تغير حالة (تخزين) شبكة إيثريوم مكلفة. ونتيجة لذلك، يمكن أن يؤدي التركيز على كيفية الاحتفاظ بالبيانات والوصول إليها إلى تخفيضات كبيرة في التكاليف. في هذه الجلسة، سنلقي نظرة على بعض الطرق لتحسين التخزين باستخدام Remix.

لماذا التخزين مكلف؟

توفر سلسلة بلوكشين الإيثيريوم تخزينًا دائمًا. سيكون كل شيء يتم حفظه على بلوكتشين متاحًا طالما بقيت بلوكتشين على قيد الحياة، ولكن هذا الدوام يأتي بتكلفة. لا يؤدي تحسين التخزين إلى خفض التكاليف فحسب، بل يضمن أيضًا استخدام الحالة العالمية لإيثريوم بكفاءة.

متغيرات تخزين التعبئة

مقدمة العملة

تقوم Solidity بتخزين المتغيرات في الفتحات. كل فتحة هي 32 بايت. عندما يمكن احتواء المتغيرات داخل فتحة واحدة، يمكن قراءتها أو تحديثها باستخدام عملية SLOAD أو SSTORE واحدة، على التوالي.

كما هو موضح في المثال

ضع في اعتبارك عقدين:

صلابة
//بدون تحسين
صلابة البراغما ^ 0.8.9؛

عقد تخزين غير محسّن {
    uint256 public value1;
    uint256 public value2;
}
صلابة
//مع التحسين
صلابة البراغما ^ 0.8.9؛

التخزين الأمثل للعقد {
    uint128 public value1;
    uint128 public value2;
}
  1. انشر كلا العقدين في Remix ولاحظ اختلافات الغاز عند التفاعل مع متغيراتها.

  2. في الإصدار المحسّن، تشترك كل من value1 و value2 في فتحة واحدة بحجم 32 بايت.

إعادة استخدام فتحات التخزين

مقدمة العملة

عند الانتهاء من فتحة التخزين، وخاصة التخزين المؤقت للبيانات، يمكنك حذف الفتحة أو التخلص منها لاسترداد الغاز.

كما هو موضح في المثال

صلابة
صلابة البراغما ^ 0.8.9؛

مثال استرداد العقد {
 uint256 البيانات المؤقتة العامة؛

 وظيفة تخزين البيانات المؤقتة (بيانات uint256) العامة {
        temporaryData = data;
    }

    وظيفة مسح البيانات المؤقتة () العامة {
        delete temporaryData;
    }
}
  1. انشر هذا العقد في Remix.

  2. قم بتخزين بعض البيانات المؤقتة ثم قم بمسحها.

  3. تحقق من تكلفة الغاز. لاحظ استرداد الغاز الذي تحصل عليه لعملية الحذف.

استخدام الأحداث بدلاً من التخزين للبيانات التاريخية

مقدمة العملة

إذا لم تكن هناك حاجة للوصول إلى البيانات عبر السلسلة، ففكر في تسجيلها كحدث بدلاً من تخزينها. الأحداث أرخص بكثير من عمليات التخزين.

كما هو موضح في المثال

صلابة
صلابة البراغما ^ 0.8.9؛

مثال على حدث العقد {
 بيانات الحدث المخزنة (بيانات uint256)؛

 وظيفة تخزين البيانات (بيانات uint256) العامة {
        emit DataStored(data);
    }
}
  1. قم بنشر العقد والتفاعل معه في Remix.

  2. لاحظ تكاليف الغاز الأرخص عند مقارنتها بالتخزين.

التطلع إلى الأمام

من المهم أن تتدرب الآن بعد أن أتقنت بعض أساليب تحسين التخزين الأساسية. تفاعل مع الأمثلة المعروضة وجرب إنشاء الأمثلة الخاصة بك. في الجلسة التالية، سنتعمق في تحسين رؤية الوظائف وإعادة استخدام التعليمات البرمجية مع المكتبات. ضع في اعتبارك أن التحسين هو فن وعلم في نفس الوقت. استمر في التجربة!

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。