از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
6 روش آسان برای افزایش سرعت ExpressExpress به لطف API ساده، پلاگین های موجود و جامعه بزرگ، محبوب ترین چارچوب وب برای Node.js است. با تشکر از جامعه، مستندات و نمونه ها کم نیست روی روش استفاده از هسته Express API، که عالی است، اما همیشه فوری نیست…
سرفصلهای مطلب
معرفی
بیان به لطف API ساده، پلاگین های موجود و جامعه بزرگ، تا حد زیادی محبوب ترین چارچوب وب برای Node.js است. با تشکر از جامعه، مستندات و نمونه ها کم نیست روی روش استفاده از هسته Express API، که عالی است، اما همیشه مشخص نیست که چگونه می توان عملکرد برنامه وب خود را با رشد آن بهبود بخشید. در اینجا من برخی از سادهترین و مؤثرترین راهها برای بهبود عملکرد برنامههای Express را به شما نشان میدهم.
فشرده سازی gzip
فشرده سازی gzip برای سرورهای وب چیز جدیدی نیست، اما فراموش کردن آن آسان است، به خصوص زمانی که به استفاده از چارچوب هایی که به طور پیش فرض آن را فعال می کنند، عادت دارید. این یکی از آن بهبودهایی است که اضافه کردن آن بسیار آسان است و عملکرد عالی را افزایش می دهد. فشرده سازی شما page محتوا می تواند کاهش دادن page سایز تا 70%.
var compression = require('compression');
var express = require('express');
var app = express();
app.use(compression());
اکسپرس را در حالت تولید اجرا کنید
بهطور پیشفرض، Express در حالت توسعه اجرا میشود، که به راحتی میتوان از آن چشمپوشی کرد، بهویژه برای کسانی که تازه با Node.js/Express شروع به کار کردهاند.
بنابراین، تفاوت بین حالت تولید و توسعه چیست؟ به نظر می رسد، در حالت توسعه، قالب های نمایش از یک فایل برای هر درخواست خوانده می شوند، در حالی که در حالت تولید، قالب ها یک بار بارگذاری شده و در حافظه پنهان ذخیره می شوند. این کار به این دلیل انجام می شود که بتوانید به راحتی تغییرات را ایجاد کنید روی پرواز بدون نیاز به راه اندازی مجدد برنامه هر بار در طول توسعه. با این حال، در یک محیط تولید، این می تواند عملکرد شما را تا حد زیادی کاهش دهد، زیرا در مقایسه با RAM بسیار سریعتر، باید با IO کند فایل مقابله کنید.
برای شما خوش شانس است، ورود Express به حالت تولید آسان است. فقط موضوع تنظیم یک متغیر محیطی است.
$ export NODE_ENV=production
با این حال مراقب این روش باشید. اگر سرور راه اندازی مجدد شود، این متغیر محیطی را از دست می دهید و به حالت توسعه باز می گردید. راه حل دائمی تر این است که متغیر را در خود تنظیم کنید .bash_profile
:
$ echo export NODE_ENV=production >> ~/.bash_profile
$ source ~/.bash_profile
کوچک کردن با Uglify
تقریباً برای هر وبسایتی، بهویژه آنهایی که دارای استایلهای زیاد و عملکردهای سمت مشتری هستند، داراییهای ثابت میتواند کشش بزرگی باشد. روی کارایی. ارسال چندین فایل جاوا اسکریپت و CSS برای هر درخواست در نهایت کار خود را به همراه خواهد داشت روی سرور شما، و این حتی در نظر گرفتن زمانی نیست که کاربر باید منتظر بماند تا تمام درخواستهای HTTP جداگانه تمام شود. روی سمت مشتری
برای کمک به کاهش این مشکل، میتوانید از یک بسته ابزاری مانند استفاده کنید زشت کردن برای کوچک کردن و به هم پیوستن فایل های جاوا اسکریپت و CSS خود. این را با یک task runner مانند ترکیب کنید غرغر کردن و شما به راحتی قادر خواهید بود آن را خودکار کنید process و لازم نیست نگران آن باشید. یک فایل Grunt نسبتاً توانا (با استفاده از خرخر کردن – مشارکت – زشت کردن افزونه) ممکن است چیزی شبیه به این باشد:
module.exports = function(grunt) {
grunt.initConfig({
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
},
dist: {
files: {
'dist/<%= pkg.name %>.min.js': ('<%= concat.dist.dest %>')
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('default', ('uglify'));
};
میان افزار خود را کاهش دهید
من نمی گویم که هرگز نباید از میان افزار استفاده کنید، بدیهی است که این ضروری است و دلایل زیادی برای استفاده از میان افزار در برنامه های Express خود وجود دارد، اما به راحتی می توان از حد نرم افزار عبور کرد و تمام میان افزارهایی را که می بینید سایر برنامه ها از آن استفاده می کنند کپی کنید. فهرست وابستگی های خود را بررسی کنید و تصمیم بگیرید که آیا واقعاً به همه چیزهایی که نصب کرده اید (کوکی ها، جلسات، i18n، ثبت درخواست ها و غیره) نیاز دارید یا خیر.
در برخی موارد شما فقط به بستههای میانافزاری برای توسعه نیاز دارید، بنابراین میتوانید به راحتی آنها را در تولید غیرفعال کنید:
var express = require('express');
var debugMiddleware = require('my-debug-middleware');
var app = express();
if (process.env.NODE_ENV !== 'production') {
app.use(debugMiddleware());
}
سوکت های Max را افزایش دهید
به طور پیش فرض سرور HTTP Node.js دارای محدودیت سوکت استخر فقط 5 است. این یک عدد بسیار محافظه کارانه است و اکثر سرورها می توانند تعداد بسیار بیشتری از سوکت ها را مدیریت کنند.
از طرف دیگر، میتوانید تا حد امکان به سوکتها اجازه دهید:
var http = require('http');
var https = require('https');
http.globalAgent.maxSockets = Infinity;
https.globalAgent.maxSockets = Infinity;
ویرایش کنید: این فقط برای Node نسخه 0.10 و بالاتر اعمال می شود. از نسخه 0.12، maxSockets
(برای هردو http
و https
) تنظیم شده است Infinity
.
از Cache-Control استفاده کنید
میتوانید یک هدر HTTP تنظیم کنید که به مرورگر کاربر میگوید محتوایی را که به تازگی دریافت کرده است ذخیره کند. این معمولاً برای دارایی های ثابت (JS، CSS و غیره) که به ندرت تغییر می کنند ایده خوبی است. برای تخصیص تنظیمات حافظه نهان در سطح برنامه، از موارد زیر استفاده کنید:
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public', { maxAge: 31557600 }));
این تنظیمات حافظه نهان را برای هر چیزی که در آن قرار دارد اختصاص می دهد public
فهرست راهنما. برای کنترل دقیق تر، می توانید ذخیره سازی را بر اساس ذخیره سازی تنظیم کنید روی درخواست/مسیرهای فردی:
var express = require('express');
var app = express();
app.get('/index.html', function (req, res) {
res.setHeader('Cache-Control', 'public, max-age=86400');
res.render('index.html');
});
نتیجه
به خاطر داشته باشید که میتوانید با مرور وبسایتهای منبع باز، مانند وبسایتهای متنباز، نکات عالی را بیابید روح پلت فرم وبلاگ نویسی این برنامهها توسط هزاران نفر توسعه یافته و مورد استفاده قرار میگیرند، بنابراین معمولاً میتوانید چند قطعه مفید عالی پیدا کنید که در غیر این صورت در مورد آنها چیزی نشنیدید.
کارهای زیادی وجود دارد که میتوانید در خارج از Express برای سرعت بخشیدن به کارها انجام دهید، بنابراین اگر قبلاً این کار را نکردهاید، Redis، Nginx و دیگر مکانیسمهای کش را بررسی کنید تا برنامه خود را تقویت کنید. باور کنید ارزش وقت گذاشتن را دارد.
آیا نکات عملکرد اکسپرس بیشتری دارید؟ در نظرات به ما اطلاع دهید!
(برچسبها برای ترجمه)# روش
منتشر شده در 1403-01-30 07:39:08