সত্যিই 1 জিবি এর মতো বড় ফাইলের wc -l
জন্য ধীর হতে পারে। আমাদের কাছে কোনও নির্দিষ্ট ফাইলের জন্য নতুন লাইনের সংখ্যা গণনা করার দ্রুত উপায় আছে?
wc
অত্যধিক ওভারহেড থাকার সন্দেহ হয় তবে আপনি নিজের প্রয়োগ করার চেষ্টা করতে পারেন foreach byte in file: if byte == '\n': linecount++
। যদি সি বা এসেম্বলারের মধ্যে প্রয়োগ করা হয় তবে আমি মনে করি না এটি কোনও দ্রুত অগ্রগতি লাভ করবে, সম্ভবত কোনও আরটিওএসে কার্নেল স্পেসে সর্বাধিক অগ্রাধিকার সহ (বা এমনকি এটির জন্য একটি বিঘ্নও ব্যবহার করুন - আপনি কেবল সিস্টেমের সাথে অন্য কিছু করতে পারবেন না)। .. ঠিক আছে, আমি digress ;-))
time wc -l some_movie.avi
একটি আনচড ফাইলটিতে একটি দ্রুত করেছি , যার ফলস্বরূপ 5172672 some_movie.avi -- real 0m57.768s -- user 0m0.255s -- sys 0m0.863s
। যা মূলত @ থ্রিগকে সঠিক প্রমাণ করে, I / O এক্ষেত্রে আপনার অভিনয়কে ছড়িয়ে দেয়।
time wc -l some_large_file_smaller_than_cache
দ্রুত পরপর দু'বার করুন এবং দ্বিতীয় ক্রিয়াকলাপটি কত দ্রুত হয় তা দেখুন time wc -l some_large_file_larger_than_cache
এবং তারপরে দেখুন কীভাবে সময় রানের মধ্যে পরিবর্তন হয় না। এখানে 0 280MB ফাইলের জন্য সময়টি 1.7 সেকেন্ড থেকে 0.2 সেকেন্ডে চলে যায়, তবে 2 জিবি ফাইলের জন্য এটি উভয় সময় 14 সেকেন্ড হয়।
/usr/bin/time wc -l <file>
বলে? আপনার হার্ডওয়্যার কি? আপনি যদি বার বার কমান্ডটি চালনা করেন তবে এটি দ্রুত হয়? আমাদের সত্যই আরও তথ্যের প্রয়োজন;)
0x0A
ইনপুটটির প্রতিটি বাইট অবশ্যই এর ইনসেসের জন্য পরীক্ষা করা উচিত , I / O সন্দেহাতীতভাবে বাধা।