পারফরম্যান্সে জেএসএন এফেক্টে লগ ইন করা


22

আমি JSON এ লগিং সম্পর্কে আরও এবং আরও নিবন্ধগুলি দেখতে পাচ্ছি। আপনি নোডজেএস ব্লগে এটির সন্ধানও করতে পারেন। সবাই এতো পছন্দ করে কেন? আমি কেবল আরও ক্রিয়াকলাপ জড়িত দেখতে পাচ্ছি:

  • কয়েকটি নতুন বস্তু তৈরি হচ্ছে।
  • স্ট্রিংফাইটিং অবজেক্টস, যার মধ্যে স্ট্রিং দৈর্ঘ্য বা একাধিক স্ট্রিং বরাদ্দ গণনা জড়িত।
  • সমস্ত ক্র্যাপ তৈরি হয়েছে GCing।

জেএসএন লগিং এবং নিয়মিত স্ট্রিং লগিং ব্যবহার করার সময় পারফরম্যান্সে কোনও পরীক্ষা আছে? এন্টারপ্রাইজ প্রকল্পগুলিতে লোকেরা কী JSON (লগিংয়ের জন্য) ব্যবহার করে?

উত্তর:


36

জেএসএন লগিং আপনাকে সময়সূচী পরিবর্তিত হলেও ফর্ম্যাটটি লগ ফাইলকে প্রোগ্রামগতভাবে পার্স করার ক্ষমতা দেয় ।

একটি ভাল উদাহরণ অ্যাপাচি লগ হয়। ডিফল্টরূপে অ্যাপাচি commonঅ্যাক্সেস.লগের জন্য ফর্ম্যাট ব্যবহার করে:

"%h %l %u %t \"%r\" %>s %b"

বলুন যে আপনি একটি অফলাইন পার্সার তৈরি করেছেন যা সেই লগ ফাইলগুলির মধ্যে একটি নেয় এবং এটি থেকে কিছু পরিসংখ্যান গণনা করে।

কিছু মুহুর্তে আপনি আপনার আবেদনের সাথে সাবডোমেনগুলি প্রবর্তন করেন এবং virtual_hostআপনার লগগুলিতে অন্তর্ভুক্ত করেন (কেবলমাত্র সাবডোমেনগুলির সাথে যদি কোনও সমস্যা দেখা দেয় তবে আপনি ডিবাগ করতে পারেন):

"%v %h %l %u %t \"%r\" %>s %b"

আপনার পার্সারটি এর ব্যবহার করে না virtual_hosts, তবে আপনাকে এখনও আপনার পার্সারটির সাথে মানিয়ে নিতে হবে:

  • নতুন লগ ফর্ম্যাটটি গ্রহণ করুন (লগ ফরম্যাটের শিরোনামে লক্ষ্য করুন %v)
  • এখনও পুরানো লগ ফর্ম্যাট সমর্থন (পুরানো লগ ফাইলের জন্য)

আপনি যদি JSON এ লগইন করেন , আপনার পার্সার এমনকি যুক্ত ক্ষেত্রটি লক্ষ্য করবেন না এবং খুশিতে নতুন লগগুলি পাশাপাশি পুরানো লগগুলি পার্স করতে পারবেন। এবং অন্যান্য কিছু পার্সার যদি যোগ করা ক্ষেত্রগুলির উপস্থিত থাকে তবে তাদের ব্যবহার করতে পারে

এবং অবশ্যই আপনার জন্য , JSON কে পার্সিং করা regexpsস্ট্রিং লগগুলিতে পার্স করা চেয়ে সহজ ।


10
নিখুঁত উদাহরণ।
ফ্লোরিয়ান মার্জাইন

27

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

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

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


1
আমি বাজি
ধরছি

@ রাইময়েড না, আমি আমার সময়কে সত্যিকারের সমস্যাগুলি সমাধান করতে পছন্দ করি।
Thorsten müller

3
@ রাইময়েড এমন পরিস্থিতি রয়েছে যেখানে মাইক্রোসেকেন্ডগুলি ফেলে দেওয়া খারাপ, অবশ্যই। আমি আরও মনে করি যে ৯৯.৯% প্রোগ্রামার কোড লেখবে যেখানে এটি হয় না। উদাহরণস্বরূপ, বেশিরভাগ ওয়েব ফ্রেমওয়ার্কগুলি আমার প্রয়োজনের চেয়ে বেশি কাজ করে এবং এতে ওভারহেড থাকে। তবে, এটির সাথে পরীক্ষাগুলি এবং সুরক্ষার একটি সম্পূর্ণ স্যুট আসে এবং এটি নিজে কোডিং করে আমার কয়েকশ ঘন্টা বাঁচায়। অতিরিক্ত সংস্থার জন্য আমার সংস্থাগুলি এটি স্ক্র্যাচ থেকে তৈরি করতে ব্যয় করে না, তারা যদি প্রয়োজন হয় তবে তারা দ্বিগুণ হার্ডওয়্যারকে তহবিল দিতে পারে (যদিও এটি যে কোনও উপায়ে আমি নিজেকে গড়ে তুলতে পারি তার চেয়ে সম্ভবত এটি আরও দ্রুত ...) অবশেষে, মাইক্রোসেকেন্ডগুলির কোনও বিষয় নেই।
কর্সিকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.