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

تقنيات تحسين أداء جافا

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

Java Performance Optimization Techniques

مرحبًا ؟
يمكنك العثور على المنشور الكامل حول تقنيات تحسين أداء Java

1. نظرة عامة

يعد تحسين أداء التعليمات البرمجية أمرًا بالغ الأهمية لنجاح ملفك الشخصي. هل تعلم أن بحث Akamai وجد أن 57% من المستهلكين عبر الإنترنت يتخلون عن موقع الويب إذا استغرق تحميل الصفحة أكثر من 3 ثوانٍ؟ في هذا المنشور، سوف تتعلم كيفية تحسين كود Java الخاص بك وتحسين أداء الكود الخاص بك.

2. المواضيع الافتراضية

لا تقل المزيد عن OutOfMemoryError: غير قادر على إنشاء خطأ أصلي جديد.

يمكن لسلاسل Java الافتراضية، المقدمة في Java 19، تحسين أداء مشروعك بشكل كبير.

في الإصدارات السابقة من Java، كان هناك نوع واحد فقط من سلاسل الرسائل (سلاسل الرسائل الكلاسيكية) عند إنشاء سلسلة رسائل كلاسيكية، يتم تخصيص سلسلة رسائل نظام التشغيل ويقتصر عدد سلاسل الرسائل على سلاسل رسائل نظام التشغيل.

بدءًا من JDK 19، يمكنك إنشاء سلاسل رسائل افتراضية تكون أخف بكثير من سلاسل عمليات نظام التشغيل ويمكنك إنشاء آلاف سلاسل الرسائل الافتراضية وتشغيلها في أحد التطبيقات.

لتمكين سلاسل الرسائل الافتراضية في تطبيق Spring Boot، قم بإضافة الكود التالي إلى application.properties.

spring.threads.virtual.enabled=true

3. التحميل البطيء

تنشأ الكثير من مشكلات الأداء نتيجة جلب البيانات التي لا تحتاج إليها.

من أفضل الممارسات تحميل الكائنات عند الحاجة فقط.

على سبيل المثال، يمكنك استخدام FetchLazy في وضع السبات ولكن ضع في اعتبارك دائمًا أن استراتيجية الجلب المناسبة تعتمد على حالة الاستخدام المحددة التي تتعامل معها.

الجلب = FetchType.LAZY

4. ذاكرة التخزين المؤقت

تقليل الوصول إلى القرص عن طريق التخزين المؤقت للبيانات التي يتم الوصول إليها بشكل متكرر. باستخدام تقنيات التخزين المؤقت المناسبة، يمكنك تقليل زمن الوصول وتجنب ازدحام الشبكة وتحسين توفر المحتوى.

يوفر إطار عمل Spring الدعم لمختلف موفري ذاكرة التخزين المؤقت بما في ذلك، على سبيل المثال لا الحصر، Redis وCaffeie وCache2k وما إلى ذلك...

5. تجنب GenerationType.TABLE

عند اختيار استراتيجية إنشاء المفاتيح في JPA، من المهم تحديد الإستراتيجية التي تناسب قاعدة البيانات التي تستخدمها.
GenerationType.TABLE

تجنب استخدام GenerationType.TABLE لأدائه الزائد. في كل مرة تكون هناك حاجة إلى مفتاح أساسي، يتم تنفيذ عبارة LOCK، بالإضافة إلى التحديد والتحديث في جدول التسلسل.
GenerationType.IDENTITY

GenerationType.IDENTITY هو الأنسب لـ MySQL لأن MySQL يستخدم حقول الزيادة التلقائية ويعمل GenerationType.IDENTITY بشكل جيد مع هذا.
GenerationType.SEQUENCE

يتم استخدام GenerationType.SEQUENCE عادةً مع PostgreSQL وOracle. تدعم كلتا قاعدتي البيانات التسلسلات، وهي كائنات قاعدة البيانات التي تولد تسلسلاً من الأرقام الفريدة.

6. ذاكرة التخزين المؤقت لخطة الاستعلام

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

عندما ينفذ السبات استعلام JPQL، يجب إنشاء استعلام SQL المقابل. تتضمن هذه العملية تحليل الاستعلام إلى شجرة بناء جملة مجردة، وترجمة الشجرة إلى استعلام SQL وأخيراً تعيين النتيجة مرة أخرى إلى كائنات Java.

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

لتمكين وتكوين ذاكرة التخزين المؤقت لخطة الاستعلام، استخدم الكود التالي:

hibernate.query.plan_cache_max_size=2048 # الحد الأقصى لعدد خطط الاستعلام في ذاكرة التخزين المؤقت
hibernate.query.plan_parameter_metadata_max_size=128 # الحد الأقصى لحجم خطط الاستعلام مع بيانات تعريف المعلمة

7. الاستنتاج

يعد تحسين أداء كود Java أمرًا ضروريًا لتقديم تطبيقات سريعة وسريعة الاستجابة.

من خلال الاستفادة من الميزات الحديثة مثل المواضيع الافتراضية، وتنفيذ التحميل البطيء، واستخدام استراتيجيات التخزين المؤقت الفعالة، وتحسين عمليات قاعدة البيانات الخاصة بك، يمكنك تحسين أداء التطبيق الخاص بك بشكل كبير.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/mohamed_kramti/java-performance-optimization-techniques-45d1?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3