শীর্ষ সার্ভার-সাইড সুইফ্ট ফ্রেমওয়ার্ক বনাম নোড.জেএস এর জন্য মাপদণ্ড

Oct ই অক্টোবর সম্পাদনা করুন: আমার ফলোআপ চেকআউট করুন: লিনাক্সের জন্য মানদণ্ড (উবুন্টু)

ভূমিকা

সম্প্রতি আমি সার্ভার-সাইড সুইফটে কাজ করছি, এবং আমাকে প্রশ্ন করা হয়েছিল:

"সার্ভার-সাইড সুইফট কি নোড.জেএসকে পরাজিত করতে পারে?"

সার্ভার সহ সমস্ত কিছুর জন্য প্রাথমিক ভাষা হিসাবে স্যুইটটি প্রথম আগ্রহী এবং লিনাক্সে খোলা থাকার পর থেকেই এটি আগ্রহজনক। আপনারা অনেকেই আমার মতো নিশ্চিতভাবে কৌতূহলী, তাই আমার অধ্যয়নের ফলাফলগুলি এখানে ভাগ করে নিতে পেরে আমি খুব সন্তুষ্ট।

শীর্ষস্থানীয় সার্ভার-সাইড সুইফ্ট ফ্রেমওয়ার্ক

লেখার সময়, শীর্ষস্থানীয় সার্ভার-সাইড সুইফট ফ্রেমওয়ার্কগুলি (গিটহাবের উপর তারাগুলির ক্রম অনুসারে তালিকাভুক্ত) হ'ল:

  • পারফেক্ট ️7,956
  • বাষ্প ️5,183
  • কিতুরা ️4,017
  • জেভো ️1,186

এই পোস্টের সংস্থা

এই দস্তাবেজটি নিম্নলিখিত পদ্ধতিতে বিছানো হয়েছে:

  • এই দ্রুত পরিচয়
  • ফলাফল সংক্ষিপ্তসার
  • প্রণালী বিজ্ঞান
  • বিস্তারিত ফলাফল
  • উপসংহার এবং চূড়ান্ত নোটস

ফলাফল সংক্ষিপ্তসার

নীচে প্রাথমিক মানদণ্ডগুলির একটি দ্রুত সংক্ষিপ্তসার রয়েছে এবং আমি এটি এখানে বলব:

স্বতন্ত্র র‌্যাঙ্কিংয়ের ব্যাপার না, এই সমস্ত ফ্রেমওয়ার্ক অবিশ্বাস্যভাবে দুর্দান্ত পারফর্ম করেছিল, সুইফট ধারাবাহিকভাবে নোড.জেগুলিকে পরাজিত করেছিল এবং সেগুলি নিয়ে কাজ করতে অনেক মজাদার ছিল।
এই চিত্রটি 1 ই সেপ্টেম্বর, 2016 সংশোধন করে আপডেট হয়েছিল

পদ্ধতি এবং নোটস

ব্লগ এবং জেএসএন কেন ব্যবহার করবেন?

সর্বাধিক সহজভাবে, ব্লগগুলি "হ্যালো, ওয়ার্ল্ড!" ফিরিয়ে দেওয়ার চেয়ে বেশি, এবং জেএসএন একটি খুব সাধারণ ব্যবহারের ক্ষেত্রে। ভাল মানদণ্ডগুলির প্রতিটি ফ্রেমওয়ার্কে একই রকম লোডের প্রয়োজন হয় এবং স্ক্রিনে দুটি শব্দ মুদ্রণের জন্য এটি আরও কিছুটা লোড হওয়া দরকার।

জিনিস একই রাখে

আমি যে প্রধান থিমের সাথে লেগে থাকার চেষ্টা করেছি তার মধ্যে একটি হল সমস্ত ব্লগকে যথাসম্ভব একে অপরের সাথে সমান রাখা, এখনও প্রতিটি কাঠামোর শৈলী এবং বাক্য গঠন বিকাশ করার সময়। কন্টেন্ট জেনারেশনের মতো অনেকগুলি স্ট্রাক্ট ভারব্যাটিম জুড়ে পুনরাবৃত্তি হয়, যাতে প্রতিটি কাঠামোর সাথে কাজ করার জন্য একই ডেটা মডেল থাকে তবে ইউআরএল রাউটিংয়ের মতো বিষয়গুলি প্রতিটি কাঠামোর বাক্য গঠন এবং স্টাইলের সাথে মাঝে মাঝে একেবারেই আলাদা হয়।

সূক্ষ্ম পার্থক্য

সার্ভার-সাইড সুইফ্ট ফ্রেমওয়ার্কগুলির মধ্যে লক্ষ্য করার জন্য কিছু সূক্ষ্ম পার্থক্য রয়েছে।

  • কিটুরা এবং জেভো উভয়েরই যদি তাদের নিখুঁত ফাইল পাথগুলিতে কোনও শূন্যস্থান থাকে তবে তা তৈরির সমস্যা রয়েছে। এক্সকোডে কোনও কাঠামোর মধ্যে নিখুঁত ফাইল পাথগুলিতে ফাঁকা স্থান তৈরির সমস্যা রয়েছে।
  • জেভো 05-09-একটি সুইফট স্ন্যাপশট ব্যবহার করছে, যার অর্থ এটি রিলিজ মোডে বিল্ডিং করতে সমস্যা রয়েছে এবং এটি ডিবাগ মোডে চালাতে হবে। এই কারণেই জেবো বিল্ট এবং ডিবাগ মোডে (রিলিজ অপ্টিমাইজেশন ছাড়াই) চলমান সাথে সমস্ত জেভো পরীক্ষা করা হয়েছিল।
  • স্ট্যাটিক ফাইল হ্যান্ডলিং সার্ভার-সাইড সুইফ্ট ফ্রেমওয়ার্কগুলির মধ্যে বিতর্কের একটি বিষয়। বাষ্প এবং জেভো উভয়ই স্থির ফাইল হ্যান্ডলিংয়ের জন্য প্রক্সি হিসাবে Nginx ব্যবহার করার পরামর্শ দেন, তারপরে ব্যাকএন্ডের প্রক্রিয়াকরণ শক্তি হিসাবে কাঠামোর পিছনে রাখুন। নিখুঁত হ্যান্ডলারের তাদের বিল্ট ইন ব্যবহার করার পরামর্শ দেয় এবং আমি আইবিএম সম্পর্কে তাদের নিজস্ব মতামত সম্পর্কিত কোনও মন্তব্য দেখিনি। যেহেতু এই অধ্যয়নটি এনগিনেক্সের মতো প্রতিষ্ঠিত সার্ভার অ্যাপ্লিকেশনগুলির সাথে ফ্রেমওয়ার্কগুলি কতটা ভাল কাজ করে তা সম্পর্কে নয়, স্ট্যাটিক ফাইল হ্যান্ডলিং প্রতিটি কাঠামোর সাথে স্থানীয়ভাবে ব্যবহৃত হত। আপনি যদি এই বিষয়টি মাথায় রেখে তৈরি করতে চান তবে আপনি বাষ্প এবং জেও উভয় ক্ষেত্রেই আরও ভাল পারফরম্যান্স অর্জন করতে সক্ষম হতে পারেন। এটিও একটি গৌণ কারণ যা আমি জেএসএন পরীক্ষাকে অন্তর্ভুক্ত করেছি।
  • [আপডেট ফলাফলের সাথে 1 লা সেপ্টেম্বর যোগ করা হয়েছে] জেওও একক থ্রেডেড অ্যাপ্লিকেশন। আপনি উপলব্ধ সিপিইউ অনুযায়ী অ্যাপ্লিকেশনটির একটি উদাহরণ চালিয়ে এর থেকে অতিরিক্ত পারফরম্যান্স পেতে পারেন, কারণ তারা মাল্টি-থ্রেড মডেলের পরিবর্তে একসাথে অনুসরণ করে। এই অধ্যয়নের উদ্দেশ্যগুলির জন্য, প্রতিটি প্রয়োগের একটি মাত্র উদাহরণ চালিত হয়েছিল।
  • Toolchains। প্রতিটি কাঠামো অ্যাপল থেকে একটি পৃথক বিকাশ স্ন্যাপশট সরঞ্জামচয়ন তৈরি করা হয়। চূড়ান্ত পরীক্ষার সময় তারা / ছিল:
     
    - পারফেক্টের জন্য ডেভেলপমেন্ট-স্নাপশট -2016-08–24-এ
    - বাষ্প এবং কিটুরার জন্য ডেভেলপমেন্ট-স্নাপশট -2017-07–25-এ
    - জেভোর জন্য ডেভেলপমেন্ট-স্নাপশট -2016-05–09-এ
  • বাষ্প চলমান রিলিজ জন্য একটি বিশেষ সিনট্যাক্স আছে। আপনি যদি কেবল বাইনারি কার্যকর করেন তবে আপনি কিছু অতিরিক্ত কনসোল লগিং পাবেন যা উন্নয়ন এবং ডিবাগিং প্রক্রিয়াতে সহায়তা করার জন্য বোঝানো হচ্ছে। ওটার একটু ওভারহেড আছে রিলিজ মোডে বাষ্প চালাতে আপনাকে যুক্ত করতে হবে
--env = প্রকাশনা

এক্সিকিউটেবলের কাছে। অর্থাত

। বিল্ড / রিলিজ / অ্যাপ --env = উত্পাদন
  • [আপডেট হওয়া ফলাফলের সাথে ১ লা সেপ্টেম্বর যোগ করা হয়েছে] জেভোর সাথে কাজ করার সময়, আপনি যদি 05-09-একটি টুলচেইনে রিলিজ মোডে সুইফট দিয়ে তৈরি করতে না পারেন তবে এই যুক্তিগুলি পাস করে আপনি কিছু রিলিজ মোড অপ্টিমাইজেশন যুক্ত করতে পারেন:
সুইফ্ট বিল্ড-এক্সএসউইফটেক -ও
  • নোড.জেএস / এক্সপ্রেস তৈরি করে না, এটি ডিবাগ / রিলিজের মধ্যেও পার্থক্য করে না
  • স্ট্যাটিক ফাইল হ্যান্ডলিং বাষ্পের ডিফল্ট মিডলওয়্যারের অন্তর্ভুক্ত। আপনি যদি স্ট্যাটিক ফাইল ব্যবহার না করে এবং গতির জন্য অনুকূলিতকরণ করতে চান তবে আপনাকে অবশ্যই অন্তর্ভুক্ত করতে হবে (যেমন আমি ভ্যাপারজেসনে করেছি):
ড্রপ.মিটলওয়্যার = []

কেন নোড.জেএস / এক্সপ্রেস?

আমি নোড.জেএস-তে এক্সপ্রেস ফ্রেমওয়ার্ক ব্যবহার করে ব্লগের বিভিন্নতা অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছি। এটি একটি ভাল তুলনা কারণ এটি সার্ভার-সাইড সুইফ্টের সাথে একেবারে অনুরূপ সিনট্যাক্সযুক্ত এবং এটি ব্যাপকভাবে ব্যবহৃত হয়। এটি সুইফটটি কতটা চিত্তাকর্ষক হতে পারে তা দেখানোর জন্য একটি ভাল বেসলাইন স্থাপনে সহায়তা করে।

ব্লগগুলি বিকাশ করছে

এক পর্যায়ে আমি এইটিকে "বাউন্ডিং বল তাড়া করে" ডাকতে শুরু করি। বর্তমান সার্ভার-সাইড সুইফ্ট ফ্রেমওয়ার্কগুলি খুব সক্রিয় বিকাশের অধীনে রয়েছে, যেমন সুইফট 3, এবং প্রত্যেকটির পূর্ববর্তী সংস্করণগুলি থেকে এক টন পরিবর্তন রয়েছে। এটি সমস্ত সার্ভার-সাইড সুইফট ফ্রেমওয়ার্কগুলি, পাশাপাশি অ্যাপলের সুইফট টিম থেকে ঘন ঘন রিলিজ দ্বারা প্রশস্ত হয়ে ওঠে। তাদের কেউই এই মুহুর্তে তাদের ডকুমেন্টেশনে বিশেষভাবে সম্পূর্ণ ছিল না, তাই আমি তাদের অবদানের জন্য কাঠামোগত দলগুলির সদস্য এবং সার্ভার-সাইড সুইফট সম্প্রদায়ের সদস্যদের জন্য অত্যন্ত কৃতজ্ঞ। পথে অগণিত সম্প্রদায়ের সদস্য এবং কাঠামো দল আমাকে যে সহায়তা দিয়েছে তার জন্য আমিও কৃতজ্ঞ। এটি মজাদার একটি টন ছিল, এবং আমি এটি না করে আবার করব thinking

পার্শ্ব দ্রষ্টব্য হিসাবে, যদিও লাইসেন্সটির দ্বারা অ্যাট্রিবিউশনটির প্রয়োজন ছিল না, তবে আমি মনে করি এটি সুন্দর লাগছে যে উত্সগুলিতে অন্তর্ভুক্ত সমস্ত র্যান্ডম-মুক্ত চিত্রগুলি পিক্সবে থেকে, এবং এলোমেলোভাবে আমার দ্বারা নির্বাচিত হয়েছিল। এর মতো উত্সগুলি ডেমো প্রকল্পগুলি আরও সহজ করে তোলে।

হোস্টিং ও পরিবেশ

পরিবেশের যে কোনও পার্থক্য হ্রাস করার জন্য, আমি একটি 2012 ম্যাক মিনি নিয়েছি এবং এটি এল ক্যাপিটেনের একটি পরিষ্কার ইনস্টল (10.11.6) দিয়েছি। এর পরে, আমি এক্সকোড 8 বিটা 6 ডাউনলোড এবং ইনস্টল করেছি এবং আমার কমান্ড লাইন সরঞ্জামগুলি এক্সকোড ৮ এ সেট করেছিলাম there সেখান থেকে আমি সুইফটেনভ ইনস্টল করেছি, প্রয়োজনীয় স্ন্যাপশট ইনস্টল করেছি, রেপো ক্লোন করেছি এবং পরিষ্কারভাবে ব্লগগুলির প্রতিটি পুনরায় প্রকাশের মোডে তৈরি করেছি where সম্ভব. আমি একবারে একের অধিক দৌড়ে যাইনি এবং প্রত্যেককেই থামিয়ে দেওয়া হয়েছিল এবং পরীক্ষার মধ্যে পুনরায় শুরু করা হয়েছিল। পরীক্ষার সার্ভারের চশমা হ'ল:

বিকাশের জন্য, আমি একটি 2015 আরএমবিপি ব্যবহার করি। আমি এখানে বিল্ড টাইম টেস্ট চালিয়েছি, কারণ এটি আমার বাস্তব জীবনের বিকাশ মেশিন এবং এটি সর্বাধিক উপলব্ধি করে। আমি বেঞ্চমার্কগুলি পেতে রির্ক ব্যবহার করেছি এবং আমি মেশিনগুলির মধ্যে একটি বজ্র 2 কেবল ব্যবহার করে একটি বজ্রব্রিজ ব্রিজের ওপরে এটি করেছি। একটি বজ্রব্রিজ ব্রিজ ব্যবহার করে নিশ্চিত হয়ে যায় যে আপনার হাতে থাকা টাস্কটির পরিবর্তে আপনার অবিশ্বাস্য পরিমাণ ব্যান্ডউইথ রয়েছে এবং আপনি নিজের রাউটারের সীমাবদ্ধতাগুলি বেঞ্চমার্ক করছেন না। কোনও মেশিনে ব্লগ পরিবেশন করা এবং লোড উত্পন্ন করার জন্য একটি পৃথক, আরও শক্তিশালী মেশিন ব্যবহার করা আরও সুনিশ্চিত এবং নিশ্চিত হওয়া যায় যে আপনি সার্ভারকে পরাশক্তি করতে সক্ষম, যাতে আপনি নিশ্চিত হন যে এটি কোনও সীমাবদ্ধতা নয়। এটি আপনাকে একটি ধারাবাহিক পরীক্ষার পরিবেশও সরবরাহ করে, তাই আমি বলতে পারি যে প্রতিটি ব্লগ একই হার্ডওয়্যার এবং একই পরিস্থিতিতে চালিত হয়েছিল। কৌতূহলের জন্য, আমার মেশিনের চশমাগুলি হ'ল:

বেঞ্চমার্কিং নোটস

বেঞ্চমার্কিংয়ের জন্য, আমি চারটি থ্রেডের সাথে দশ মিনিটের পরীক্ষাটি ব্যবহার করার সিদ্ধান্ত নিয়েছি, প্রতিটিতে 20 টি সংযোগ রয়েছে। চার সেকেন্ড পরীক্ষা হয় না। প্রচুর ডেটা পাওয়ার জন্য দশ মিনিট একটি যুক্তিসঙ্গত সময়সীমা এবং চারটি থ্রেডে 20 টি সংযোগ চালানো ব্লগগুলির জন্য একটি ভারী বোঝা, তবে ব্রেকিং লোড নয়।

সোর্স কোড

আপনি যদি প্রকল্পগুলির জন্য সোর্স কোডটি অন্বেষণ করতে চান বা নিজের কোনও পরীক্ষা করতে চান, তবে আমি এখানে পাওয়া গিয়েছিলাম একটি সংগ্রহস্থলে পরীক্ষার জন্য ব্যবহৃত কোডটি একত্রীকরণ করেছি:

https://github.com/rymcol/Server-Side-Swift-Benchmarking

বিস্তারিত ফলাফল

বিল্ড টাইম

আমি ভেবেছিলাম প্রথমে বিল্ড টাইমগুলি একবার দেখে মজা পাবে। বিল্ড টাইম প্রতিদিন বিকাশের ক্ষেত্রে একটি বড় ভূমিকা নিতে পারে এবং একটি কাঠামোর কার্য সম্পাদনের সাথে এর সামান্য কিছু করার পরে, আমি ভেবেছিলাম আসল সংখ্যাগুলি অনুসন্ধান করতে মজা পাওয়া যাবে। আমি অপেক্ষা করতে করতে কতক্ষণ জিনিস অনুভূত হয়েছিল।

কী চালানো হয়েছিল

প্রতিটি কাঠামোর জন্য,

swift build --clean = dist

এবং তারপর

টাইম সুইফ্ট বিল্ড

চালানো হয়, এর পরে দ্বিতীয় পরীক্ষা হয়

সুইফ্ট বিল্ড - ক্ল্যান

তারপর:

টাইম সুইফ্ট বিল্ড

এই বিষয়গুলি এসপিএমের সাথে নির্ভরতা টানতে এবং পাশাপাশি ইতিমধ্যে ডাউনলোড করা নির্ভরতা সহ একটি নিয়মিত, পরিষ্কার বিল্ড সহ পুরো বিল্ড উভয়ই তৈরি করে।

এটা কিভাবে চালানো হয়েছিল

এটি আমার স্থানীয় 2015 আরএমবিপিতে চালিত হয়েছিল এবং বিল্ডগুলি সমস্তই ডিবাগ মোডে সম্পন্ন হয়েছিল, কারণ সুইফ্ট সফ্টওয়্যারটি বিকাশ করার সময় এটিই স্বাভাবিক প্রক্রিয়া।

সময় ফলাফল তৈরি করুন

মেমরি ব্যবহার

দ্বিতীয় জিনিসটি আমি দেখেছিলাম লোডের নিচে প্রতিটি কাঠামোর মেমরির পদচিহ্ন।

রান কি ছিল

1 ম - মেমোরির পদক্ষেপের সূচনা (কেবল প্রক্রিয়াটির দিকে তাকানো)
দ্বিতীয় - আমার পরীক্ষার সার্ভারে প্রক্রিয়াটির পিক মেমরির ব্যবহারটি ব্যবহার করে:

wrk -d 1m -t 4 -c 10

তৃতীয় - দ্বিতীয় পরীক্ষার পুনরাবৃত্তি ব্যবহার করে:

wrk -d 1m -t 8 -c 100

এটা কেমন ছিল

এই পরীক্ষাটি একটি পরীক্ষার সার্ভার হিসাবে নিবেদিত একটি ক্লিন ম্যাক মিনিতে চালিত হয়েছিল। প্রতিটি ফ্রেমওয়ার্ক যেখানে সম্ভব সেখানে রিলিজ মোডে নির্মিত হয়েছিল। একবারে কমান্ড লাইন থেকে একটি মাত্র কাঠামো চালানো হয়েছিল এবং এটি পরীক্ষার মধ্যে পুনরায় চালু করা হয়েছিল। পরীক্ষার সময় কেবলমাত্র অন্য খোলা উইন্ডোটি ছিল ক্রিয়াকলাপ মনিটর, যা আমার দ্বারা পিক মেমরির ব্যবহারটি কল্পনা করার জন্য ব্যবহৃত হয়েছিল। প্রতিটি কাঠামো চালিত হওয়ার সাথে সাথে আমি কেবল সর্বাধিক মানটি উল্লেখ করেছি যা ক্রিয়াকলাপের মনিটরের উইন্ডোতে উপস্থিত হয়েছিল।

মেমরি ব্যবহারের ফলাফল

থ্রেড ব্যবহার

তৃতীয় জিনিসটি আমি দেখেছি লোডের নিচে প্রতিটি কাঠামোর থ্রেড ব্যবহার।

রান কি ছিল

1 ম - থ্রেড শুরু করা (কেবল প্রক্রিয়াটির দিকে তাকানো)
দ্বিতীয় - আমার পরীক্ষার সার্ভারে প্রক্রিয়াটির পিক থ্রেড ব্যবহারটি ব্যবহার করে:

wrk -d 1m -t 4 -c 10

এটা কেমন ছিল

এই পরীক্ষাটি একটি পরীক্ষার সার্ভার হিসাবে নিবেদিত একটি ক্লিন ম্যাক মিনিতে চালিত হয়েছিল। প্রতিটি কাঠামো রিলিজ মোডে নির্মিত হয়েছিল যেখানে সম্ভব হয়েছে (এটিতে আরও রয়েছে পদ্ধতি বিভাগে)। একবারে কমান্ড লাইন থেকে একটি মাত্র কাঠামো চালানো হয়েছিল এবং এটি পরীক্ষার মধ্যে পুনরায় চালু করা হয়েছিল। পরীক্ষার সময় কেবলমাত্র অন্য খোলা উইন্ডোটি ছিল ক্রিয়াকলাপ মনিটর, যা থ্রেডের ব্যবহারটি কল্পনা করার জন্য আমার দ্বারা ব্যবহৃত হয়েছিল। প্রতিটি কাঠামো চলমান থাকাকালীন, আমি পরীক্ষাটি চলাকালীন সর্বাধিক মানটি ক্রিয়াকলাপের মনিটরের উইন্ডোতে উপস্থিত হয়েছিল noted

এই ফলাফল সম্পর্কে একটি নোট

এই বিভাগে কোনও "বিজয়ী" নেই। অনেক অ্যাপ্লিকেশন থ্রেডকে আলাদাভাবে আচরণ করে এবং এই ফ্রেমওয়ার্কগুলিও তার ব্যতিক্রম নয়। উদাহরণস্বরূপ, জেওও একক থ্রেডেড অ্যাপ্লিকেশন, এবং এটি কখনই একের বেশি ব্যবহার করতে পারে না (সম্পাদনা করুন: আপনার হস্তক্ষেপ ছাড়াই এটি প্রতিটি সিপিইউতে একযোগে কনফিগারেশনে চালানোর জন্য)। পারফেক্ট, অন্যদিকে, উপলব্ধ সিপিইউ প্রতি একটি ব্যবহার করবে। বাষ্প সংযোগ মডেল প্রতি এক ব্যবহার করবে। যেমন, এই গ্রাফটি এমনভাবে ডিজাইন করা হয়েছিল যাতে লোডের নিচে থ্রেডগুলিতে স্পাইকগুলি সহজেই দৃশ্যমান হয়, কারণ তারা উভয় গ্রাফে একই ক্রমে থাকে।

থ্রেড ব্যবহারের ফলাফল

ব্লগ বেঞ্চমার্ক

প্রথম মাপদণ্ডটি প্রতিটি / ব্লগের রুট, যা এমন একটি পৃষ্ঠা যা প্রতিটি অনুরোধের জন্য 5 টি এলোমেলো চিত্র এবং নকল ব্লগ পোস্ট দেয়।

রান কি ছিল

wrk -d 10m -t 4 -c 20 http://169.254.237.101:(PORT)/blog

আমার আরএমবিপি থেকে আমার বজ্র সেতুর উপরে প্রতিটি ব্লগের জন্য পরিচালিত হয়েছিল।

এটা কেমন ছিল

মেমোরি টেস্টিংয়ের মতো, প্রতিটি ফ্রেমওয়ার্কটি যেখানে সম্ভব সেখানে রিলিজ মোডে চালিত হয়েছিল এবং প্রতিটি পরীক্ষার আগেই এটি বন্ধ করে আবার চালু করা হয়েছিল। সার্ভারে যে কোনও সময় কেবল একটি ফ্রেমওয়ার্ক চলছিল। পরিবেশকে যথাসম্ভব সাদৃশ্য রাখতে পরীক্ষার সময় সমস্ত ক্রিয়াকলাপ উভয় মেশিনে ন্যূনতম হতে হয়েছিল।

ফলাফল

এই চিত্রটি 1 ই সেপ্টেম্বর, 2016 সংশোধন করে আপডেট হয়েছিলএই চিত্রটি 1 ই সেপ্টেম্বর, 2016 সংশোধন করে আপডেট হয়েছিল

জেএসএন বেঞ্চমার্ক

স্ট্যাটিক ফাইলগুলি প্রত্যেকে কীভাবে পরিচালনা করে তার কিছু জটিলতার কারণে, আরও সাধারণ ইন্টারফেস ব্যবহার করে আবার একই পরীক্ষাগুলি চালানো আরও ন্যায্য মনে হয়েছে, তাই আমি প্রতিটি অ্যাপ্লিকেশনের সংস্করণ যুক্ত করেছি যা একটি / জেএসন রুটে স্যান্ডবক্সযুক্ত রয়েছে যা দশটির মধ্যে দশটি এলোমেলো সংখ্যা ফেরায় -1000। স্থির ফাইল হ্যান্ডলার এবং মিডলওয়্যার ফলাফলের সাথে হস্তক্ষেপ করবে না তা নিশ্চিত করতে তারা পৃথক।

রান কি ছিল

wrk -d 10m -t 4 -c 20 http://169.254.237.101:(portT)/json

প্রতিটি জেএসএন প্রকল্পের জন্য পরিচালিত হয়েছিল।

এটা কেমন ছিল

অন্যান্য পরীক্ষাগুলির মতো, প্রতিটি ফ্রেমওয়ার্কটি যেখানে সম্ভব সেখানে রিলিজ মোডে চালিত হয়েছিল এবং প্রতিটি পরীক্ষার আগেই এটি বন্ধ করে আবার চালু করা হয়েছিল। সার্ভারে যে কোনও সময় কেবল একটি ফ্রেমওয়ার্ক চলছিল। পরিবেশকে যথাসম্ভব সাদৃশ্য রাখতে পরীক্ষার সময় সমস্ত ক্রিয়াকলাপ উভয় মেশিনে ন্যূনতম হতে হয়েছিল।

ফলাফল

এই চিত্রটি 1 ই সেপ্টেম্বর, 2016 সংশোধন করে আপডেট হয়েছিলএই চিত্রটি 1 ই সেপ্টেম্বর, 2016 সংশোধন করে আপডেট হয়েছিল

উপসংহার

আমার প্রশ্নের উত্তরের হ্যাঁ উত্তর দেওয়া হয়েছিল। প্রতিষ্ঠিত সার্ভারের পাশের ফ্রেমওয়ার্কগুলি গ্রহণের ক্ষেত্রে সুইফট আরও বেশি সক্ষম। শুধু তা-ই নয়, সার্ভার-সাইড সুইফট ফ্রেমওয়ার্কগুলির সমস্তগুলি অবিশ্বাস্যভাবে দুর্দান্ত পারফর্ম করেছিল এবং নোড.জেস তাদের প্রতিটি পরীক্ষায় কমপক্ষে দুজনকে পরাজিত করেছিল।

প্রদত্ত সার্ভার-সাইড সুইফট আপনার অন্যান্য সুইফট অ্যাপ্লিকেশনগুলির সাথে এর কোডবেস ভাগ করে নেওয়ার জন্য একটি উন্মাদ পরিমাণ বাঁচাতে পারে, বিভিন্ন সার্ভার-সাইড সুইফ্ট ফ্রেমওয়ার্কের বৈশিষ্ট্য সেট এবং এখানে ফলাফলগুলি, আমি বলব যে সার্ভার-সাইড সুইফ্টটি এর উপর ভাল প্রোগ্রামিং অঙ্গনে খুব বড় প্রতিযোগী হওয়ার উপায়। আমি ব্যক্তিগতভাবে সুইফটে যতটা সম্ভব প্রোগ্রামিং করছি, বিশেষত সার্ভার-সাইডে, এবং আমি সমস্ত অবিশ্বাস্য প্রকল্পগুলি দেখার জন্য অপেক্ষা করতে পারি না যা সম্প্রদায় থেকে বেরিয়ে আসবে!

জড়িত

আপনি যদি সার্ভার-সাইড সুইফটে আগ্রহী হন তবে এখনই জড়িত হওয়ার সময়! ফ্রেমওয়ার্কগুলিতে, তাদের ডকুমেন্টেশনগুলিতে এবং কাজকর্মের উদাহরণ, খোলা বা বন্ধ উত্স হিসাবে কিছু সত্যই শীতল অ্যাপ্লিকেশন পেয়ে এখনও অনেক কাজ বাকি রয়েছে। আপনি প্রতিটি কাঠামো সম্পর্কে আরও জানতে এবং এখানে জড়িত থাকতে পারেন:

পারফেক্ট: ওয়েবসাইট | গিথুব | স্ল্যাক | Gitter
বাষ্প: ওয়েবসাইট | গিথুব | ঢিলা
কিতুরা: ওয়েবসাইট | গিথুব | Gitter
জেভো: ওয়েবসাইট | গিথুব | ঢিলা

যোগাযোগ করুন

আপনি যদি সংযোগ স্থাপন করতে চান তবে আপনি টুইটারে আমার কাছে @rymcol এ যোগাযোগ করতে পারেন।

আমি যে প্রকাশগুলি অপরিহার্য বলে মনে করেছি: সম্পাদনাগুলি 1 লা সেপ্টেম্বর, 2016 এ Ze সুইফ্ট বিল্ড-সি রিলিজtern বিকল্পের পদ্ধতিতে জেভোর পক্ষে বিকল্প পদ্ধতি ব্যবহার করে রিলিজ অপ্টিমাইজেশন তৈরি করার পরে কিছু তথ্য সংশোধন করার জন্য যুক্ত করা হয়েছিল ` পারফেক্টলি সফট ইনক। সুইফটের শক্তি প্রচারের জন্য, আমার জন্য এই অধ্যয়নের তহবিল করতে সম্মত হয়েছে। আমি পারফেক্ট ও বাষ্পের জন্য গিথুব দলগুলিতেও আছি, যদিও আমি উভয়ের একজনও কর্মচারী নই, না আমার মতামত তাদের প্রতিফলিত করে। আমি চারটি প্ল্যাটফর্মে যেমন বিকাশ করেছি তেমনি নিরপেক্ষ থাকার জন্য আমার নিরঙ্কুশতম চেষ্টা করেছি এবং ফলাফলগুলি দেখার জন্য আমি সত্যই আগ্রহী ছিলাম। সমস্ত কোড এই অধ্যয়নের জন্য প্রকাশ্যে উপলভ্য, দয়া করে এটি পরীক্ষা করে দেখতে বা নির্দ্বিধায় কিছু পরীক্ষার পুনরাবৃত্তি করুন এবং এটি নিজের জন্য যাচাই করুন!