مرحبًا ؟
يمكنك العثور على المنشور الكامل حول تقنيات تحسين أداء Java
يعد تحسين أداء التعليمات البرمجية أمرًا بالغ الأهمية لنجاح ملفك الشخصي. هل تعلم أن بحث Akamai وجد أن 57% من المستهلكين عبر الإنترنت يتخلون عن موقع الويب إذا استغرق تحميل الصفحة أكثر من 3 ثوانٍ؟ في هذا المنشور، سوف تتعلم كيفية تحسين كود Java الخاص بك وتحسين أداء الكود الخاص بك.
لا تقل المزيد عن OutOfMemoryError: غير قادر على إنشاء خطأ أصلي جديد.
يمكن لسلاسل Java الافتراضية، المقدمة في Java 19، تحسين أداء مشروعك بشكل كبير.
في الإصدارات السابقة من Java، كان هناك نوع واحد فقط من سلاسل الرسائل (سلاسل الرسائل الكلاسيكية) عند إنشاء سلسلة رسائل كلاسيكية، يتم تخصيص سلسلة رسائل نظام التشغيل ويقتصر عدد سلاسل الرسائل على سلاسل رسائل نظام التشغيل.
بدءًا من JDK 19، يمكنك إنشاء سلاسل رسائل افتراضية تكون أخف بكثير من سلاسل عمليات نظام التشغيل ويمكنك إنشاء آلاف سلاسل الرسائل الافتراضية وتشغيلها في أحد التطبيقات.
لتمكين سلاسل الرسائل الافتراضية في تطبيق Spring Boot، قم بإضافة الكود التالي إلى application.properties.
spring.threads.virtual.enabled=true
تنشأ الكثير من مشكلات الأداء نتيجة جلب البيانات التي لا تحتاج إليها.
من أفضل الممارسات تحميل الكائنات عند الحاجة فقط.
على سبيل المثال، يمكنك استخدام FetchLazy في وضع السبات ولكن ضع في اعتبارك دائمًا أن استراتيجية الجلب المناسبة تعتمد على حالة الاستخدام المحددة التي تتعامل معها.
الجلب = FetchType.LAZY
تقليل الوصول إلى القرص عن طريق التخزين المؤقت للبيانات التي يتم الوصول إليها بشكل متكرر. باستخدام تقنيات التخزين المؤقت المناسبة، يمكنك تقليل زمن الوصول وتجنب ازدحام الشبكة وتحسين توفر المحتوى.
يوفر إطار عمل Spring الدعم لمختلف موفري ذاكرة التخزين المؤقت بما في ذلك، على سبيل المثال لا الحصر، Redis وCaffeie وCache2k وما إلى ذلك...
عند اختيار استراتيجية إنشاء المفاتيح في JPA، من المهم تحديد الإستراتيجية التي تناسب قاعدة البيانات التي تستخدمها.
GenerationType.TABLE
تجنب استخدام GenerationType.TABLE لأدائه الزائد. في كل مرة تكون هناك حاجة إلى مفتاح أساسي، يتم تنفيذ عبارة LOCK، بالإضافة إلى التحديد والتحديث في جدول التسلسل.
GenerationType.IDENTITY
GenerationType.IDENTITY هو الأنسب لـ MySQL لأن MySQL يستخدم حقول الزيادة التلقائية ويعمل GenerationType.IDENTITY بشكل جيد مع هذا.
GenerationType.SEQUENCE
يتم استخدام GenerationType.SEQUENCE عادةً مع PostgreSQL وOracle. تدعم كلتا قاعدتي البيانات التسلسلات، وهي كائنات قاعدة البيانات التي تولد تسلسلاً من الأرقام الفريدة.
تعد ذاكرة التخزين المؤقت لخطة الاستعلام في Hibernate ميزة أساسية يمكنها تحسين أداء التطبيق الخاص بك.
عندما ينفذ السبات استعلام JPQL، يجب إنشاء استعلام SQL المقابل. تتضمن هذه العملية تحليل الاستعلام إلى شجرة بناء جملة مجردة، وترجمة الشجرة إلى استعلام SQL وأخيراً تعيين النتيجة مرة أخرى إلى كائنات Java.
بمجرد اكتمال هذه العملية، يقوم السبات بتخزين العملية مؤقتًا بحيث لا تحتاج إلى تنفيذ هذه الخطوات مرة أخرى لنفس الاستعلام.
لتمكين وتكوين ذاكرة التخزين المؤقت لخطة الاستعلام، استخدم الكود التالي:
hibernate.query.plan_cache_max_size=2048 # الحد الأقصى لعدد خطط الاستعلام في ذاكرة التخزين المؤقت
hibernate.query.plan_parameter_metadata_max_size=128 # الحد الأقصى لحجم خطط الاستعلام مع بيانات تعريف المعلمة
يعد تحسين أداء كود Java أمرًا ضروريًا لتقديم تطبيقات سريعة وسريعة الاستجابة.
من خلال الاستفادة من الميزات الحديثة مثل المواضيع الافتراضية، وتنفيذ التحميل البطيء، واستخدام استراتيجيات التخزين المؤقت الفعالة، وتحسين عمليات قاعدة البيانات الخاصة بك، يمكنك تحسين أداء التطبيق الخاص بك بشكل كبير.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3