কেন এআরএম চিপস (এফজেসিভিটিজেডস) নামে জাভাস্ক্রিপ্টের সাথে একটি নির্দেশনা রয়েছে?


134

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

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


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

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

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

@ টিমস্মিথ আপনার সহযোগিতার জন্য আপনাকে ধন্যবাদ। আসুন আমরা এই প্রশ্নটি আবার খুলতে পারি কিনা তা দেখুন।
ফুজ

উত্তর:


121

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

এই এআরএম লিঙ্কটি এটি খুব ভালভাবে ব্যাখ্যা করেছে: https://commune.arm.com/processors/b/blog/posts/armv8-a-architecture-2016- সংস্করণ

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

FJCVTZS: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0801g/hko1477562192868.html

FCVTZS: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/FCVTZS_float_int.html


8
বিদ্যমান FCVTZSনির্দেশিকাটি কেন কাজের জন্য অপর্যাপ্ত তা আপনার ব্যাখ্যা করা উচিত ।
ফুজ

13
এটি অপর্যাপ্ত নয়, এটি অনেকটা স্লভার (আসুন কমপক্ষে ২/৩ বার বলি) কারণ একই কাজটি সম্পাদনের জন্য এটির জন্য 10 টি ভিন্ন নির্দেশনা প্রয়োজন। অবশ্যই বৃহত্তর অ্যালগরিদমের উপর প্রভাব এর চেয়ে অনেক কম তবে ছোট A53 এ কাজ করার সময় গতি এবং মেমরি উভয়ই এতে উপকৃত হবে)) এখন আসুন এটিকে সরানো যাক, উদাহরণস্বরূপ, ভি 8 এআরএম এর জন্য সংকলিত হয়েছে এবং এটি অবশ্যই কিছুটা যোগ্য হবে সিপিইউ স্পেস।
অ্যাড্রিয়ানো রেপিটি

এই নির্দেশটি কি কেবলমাত্র ভি 8 এর মতো জেএস রানটাইম লেখার সময় ব্যবহৃত হয়? সাধারণভাবে, এটি অন্যান্য ক্ষেত্রে কার্যকর?
wlnirvana
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.