اذهب إلى المحتوى
  • 0

ما سبب بُطء مشروع لارافل أثناء التطوير؟

Ahmed Alsalih

السؤال

Recommended Posts

  • 0

هل حاولت حذف الملفات المؤقتة؟ من خلال الأمر:

 php artisan optimize:clear

وربما المشكلة لديك بسبب استهلاك موارد الجهاز من قبل أمرِا آخر، تفقد الاستهلاك من خلال task manager ما هو استهلاك المعالج والرامات؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 8 دقائق مضت قال Mustafa Suleiman:

هل حاولت حذف الملفات المؤقتة؟ من خلال الأمر:

 php artisan optimize:clear

وربما المشكلة لديك بسبب استهلاك موارد الجهاز من قبل أمرِا آخر، تفقد الاستهلاك من خلال task manager ما هو استهلاك المعالج والرامات؟

الذاكرة الحرة هي 4 قيقا ونعم لقد حاولت بالفعل تنظيف الكاش, الا يمكن فصل ملفات ارتيزان وnpm وما الى ذلك عن المشروع الاساسي؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هل تستخدم HDD بدلاً من SSD لنظام الويندوز فربما تلك هي المشكلة، تفقد هل يصل استخدام الهارد إلى 100%.

وربما هناك مشكلة في الكود تسبب ذلك، في حال استمرت المشكلة أرجو إرفاق مجلد المشروع لإختباره، ومتى تواجه البطء؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 21 ساعة قال Mustafa Suleiman:

هل تستخدم HDD بدلاً من SSD لنظام الويندوز فربما تلك هي المشكلة، تفقد هل يصل استخدام الهارد إلى 100%.

وربما هناك مشكلة في الكود تسبب ذلك، في حال استمرت المشكلة أرجو إرفاق مجلد المشروع لإختباره، ومتى تواجه البطء؟

يبدو انني اثقلت المشروع بنفسي عن طريق تجربة الكثير من المكاتب وعدم حذفها, سارفق المشروع واعتذر عن عدم نظافته مقدما

بتاريخ 21 ساعة قال Mustafa Suleiman:

هل تستخدم HDD بدلاً من SSD لنظام الويندوز فربما تلك هي المشكلة، تفقد هل يصل استخدام الهارد إلى 100%.

وربما هناك مشكلة في الكود تسبب ذلك، في حال استمرت المشكلة أرجو إرفاق مجلد المشروع لإختباره، ومتى تواجه البطء؟

 

ahmadGram1.zip

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

كيف تزيد من سرعة موقعك واداء الموقع قدر الامكان هذه الطرق اذا اتقنتها ورعيتها في كل مشروع اضمن لك ان يزيد من الموقع المبني بواسطة لارافل الخاص بك

 

1. قم فقط بإحضار الحقول التي تحتاجها في استعلامات قاعدة البيانات الخاصة بك
إحدى الطرق السهلة لتسريع موقع Laravel الخاص بك هي تقليل كمية البيانات المنقولة بين تطبيقك وقاعدة البيانات. إحدى الطرق التي يمكنك من خلالها القيام بذلك هي تحديد الأعمدة التي تحتاجها في استعلاماتك فقط باستخدام عبارة تحديد.

على سبيل المثال، لنفترض أن لديك نموذج مستخدم يحتوي على 20 حقلاً مختلفًا. الآن، تخيل أن لديك 10000 مستخدم في نظامك وأنك تحاول إجراء شكل من أشكال المعالجة على كل منهم. قد يبدو الرمز الخاص بك كما يلي:
 

$users = User::all();
 
foreach($users as $user) {
    // Do something here
}

سيكون الاستعلام أعلاه مسؤولاً عن استرداد 200000 حقل من البيانات. ولكن، تخيل أنه عند معالجة كل مستخدم، فإنك لا تستخدم فعليًا سوى حقول المعرف والاسم الأول واسم العائلة. لذا، هذا يعني أنه من بين الحقول العشرين التي تستردها، هناك 17 منها زائدة عن الحاجة بالنسبة لهذا الجزء المحدد من التعليمات البرمجية. لذا، ما يمكننا فعله هو تحديد الحقول التي يتم إرجاعها في الاستعلام بشكل صريح. في هذه الحالة، قد يبدو الكود الخاص بك كما يلي:

 

$users = User::select([‘id’, first_name’, last_name’])->get();
 
foreach($users as $user) {
    // Do something here
}

من خلال القيام بذلك، سيتم تقليل عدد الحقول التي يتم إرجاعها في الاستعلام من 200000 إلى 30000. على الرغم من أن هذا ربما لن يكون له تأثير كبير على تحميل الإدخال/الإخراج لقاعدة البيانات، إلا أنه سيقلل من حركة مرور الشبكة بين تطبيقك وقاعدة البيانات. وذلك لأنه (من المفترض) سيكون هناك بيانات أقل لإجراء تسلسل وإرسالها ثم إلغاء تسلسلها مما لو كنت تريد جلب جميع الحقول المتاحة. من خلال تقليل حركة مرور الشبكة وكمية البيانات التي تحتاج إلى معالجة، سيساعد ذلك في تسريع موقع Laravel الخاص بك.

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

قد لا يمنحك هذا الحل تحسينات كبيرة على موقع أو تطبيق أصغر. ومع ذلك، فهو شيء يمكن أن يساعد بالتأكيد في تقليل أوقات التحميل على التطبيقات التي يكون فيها الأداء أمرًا ضروريًا. قد ترى أيضًا تحسينات أفضل إذا كنت تستعلم عن جدول يحتوي على حقول BLOB أو TEXT. من المحتمل أن تحتوي هذه الحقول على ميغابايت من البيانات وبالتالي من المحتمل أن تزيد من وقت الاستعلام. لذا، إذا كان جدول النموذج الخاص بك يحتوي على أي من هذه الحقول، ففكر في تحديد الحقول التي تحتاجها في استعلامك بشكل صريح لتقليل وقت التحميل.
 

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


بسبب الطريقة التي يعمل بها Laravel، فإنه يقوم بتشغيل إطار العمل وتحليل ملف المسارات عند كل طلب يتم إجراؤه. يتطلب ذلك قراءة الملف وتحليل محتوياته ثم الاحتفاظ به بطريقة يمكن لتطبيقك استخدامها وفهمها. لذلك، يوفر Laravel أمرًا يمكنك استخدامه لإنشاء ملف مسارات واحد يمكن تحليله بشكل أسرع بكثير:

 

php artisan route:cache

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

php artisan config:cache

 

3. تخلص من أي حزم غير ضرورية أو غير مرغوب فيها
افتح ملف Composer.json الخاص بك وابحث في كل تبعياتك. بالنسبة لكل من تبعياتك، اسأل نفسك "هل أحتاج حقًا إلى هذه الحزمة؟". إجابتك في الغالب ستكون نعم، ولكن بالنسبة للبعض منهم قد لا تكون كذلك.

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

الحل لهذا هو تحديد ما إذا كنت تحتاج بالفعل إلى كافة الحزم. لدي قائمة من 8 أسئلة أساسية أطرحها على نفسي قبل استخدام حزمة Laravel.

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


4.التخزين المؤقت للاستعلامات والقيم
ضمن كود تطبيق Laravel، يمكنك تخزين العناصر مؤقتًا لتحسين أداء موقع الويب. على سبيل المثال، الرمز للاستعلام التالي:
 

$users = DB::table('users')->get();

للاستفادة من التخزين المؤقت مع هذا الاستعلام، يمكنك تحديث الكود إلى ما يلي:
 

$users = Cache::remember('users', 120, function () {
    return DB::table('users')->get();
});

 

تم التعديل في بواسطة Taha Khalid
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...