এই তুলনাগুলিতে কীভাবে সুইফট অবজেক্টিভ-সি এর চেয়ে এত দ্রুত হতে পারে?


115

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

এখানে চিত্র বর্ণনা লিখুন

আরসি 4 এনক্রিপশন অ্যালগরিদম ব্যবহার করে পারফরম্যান্স তুলনা সম্পর্কে আরও অবিশ্বাস্য গ্রাফ ছিল ।

স্পষ্টতই এটি একটি বিপণনের আলাপ, এবং এটি প্রতিটিতে কীভাবে এটি প্রয়োগ করা হয়েছিল সে সম্পর্কে তারা বিশদে যায় নি। আমি যদিও আমাকে ভাবছি:

  1. কিভাবে একটি নতুন প্রোগ্রামিং ভাষা এত দ্রুত হতে পারে?
  2. উদ্দেশ্যমূলক-সি ফলাফলগুলি কি কোনও খারাপ সংকলক দ্বারা সৃষ্ট বা সুইফটের চেয়ে অবজেক্টিভ-সি-তে কম দক্ষ কিছু আছে?
  3. আপনি 40% কার্যকারিতা বৃদ্ধি কীভাবে ব্যাখ্যা করবেন? আমি বুঝতে পারি যে আবর্জনা সংগ্রহ / স্বয়ংক্রিয় রেফারেন্স কন্ট্রোল কিছু অতিরিক্ত ওভারহেড উত্পাদন করতে পারে তবে এটি কি এত?

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

17
পাইথনের তুলনা হ'ল এখানে আসল মাথা-স্ক্র্যাচার।
অ্যাথাস্টার

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

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

7
তারা সম্ভবত কোডটি লেখার জন্য যে সময় নেয় তা বোঝায় ...
লুকাশ এডার

উত্তর:


62

প্রথমত, (আইএমও) পাইথনের সাথে তুলনা করা প্রায় অর্থহীন। কেবলমাত্র উদ্দেশ্য-সি এর সাথে তুলনা অর্থপূর্ণ।

  • কিভাবে একটি নতুন প্রোগ্রামিং ভাষা এত দ্রুত হতে পারে?

উদ্দেশ্য-সি একটি ধীর ভাষা। (কেবলমাত্র সি অংশটি দ্রুত, তবে এটি সি এর কারণ) এটি কখনও খুব দ্রুত হয় নি। এটি তাদের (অ্যাপলের) উদ্দেশ্যে যথেষ্ট দ্রুত ছিল এবং তারপরে তাদের পুরানো সংস্করণগুলিও দ্রুত ছিল। এবং এটি ধীর ছিল কারণ ...

  • অবজেক্টিভ সি এর খারাপ সংকলক থেকে ফলাফল আছে বা সুইফটের চেয়ে ওজেক্টিভ-সি তে কার্যকর কিছু আছে?

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

  • আপনি 40% কার্যকারিতা বৃদ্ধি কীভাবে ব্যাখ্যা করবেন? আমি বুঝতে পারি যে আবর্জনা সংগ্রহ / স্বয়ংক্রিয় রেফারেন্স কন্ট্রোল কিছু অতিরিক্ত ওভারহেড উত্পাদন করতে পারে তবে এটি কি এত?

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

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

হালনাগাদ

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

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

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

আরসি সিস্টেমের বিপরীতে, এএফআইকে, রেফারেন্স-ধরণের আংশিক অপ্ট-আউট জিসি সিস্টেমে কোনও বিকল্প নয়।

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

আপডেট 2

আবার অপ্রয়োজনীয় যুক্তি বা আলোচনা এড়াতে আমি আরও কিছু বিশদ যুক্ত করছি।

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

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

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

জিসির বিপরীতে, আরসি মৌলিকভাবে নির্বিচারক, এবং কেবলমাত্র স্পাইক এড়ানোর জন্য আপনাকে এই উন্মাদ অপটিমাইজেশন (খাঁটি-মান-প্রকার-কেবল) ব্যবহার করতে হবে না। আপনাকে যা করতে হবে তা হ'ল অংশটি ট্র্যাক করে নিখুঁতকরণ করা যা স্পাইকের কারণ। আরসি সিস্টেমে স্পাইকটি স্থানীয় অ্যালগরিদম ইস্যু, তবে জিসি সিস্টেমে স্পাইক সবসময় গ্লোবাল সিস্টেম ইস্যু থাকে।

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


4
আবর্জনা সংগ্রহ, বিশেষত প্রজন্মের, উল্লেখ উল্লেখের তুলনায় সাধারণত উল্লেখযোগ্যভাবে দ্রুত হয়
জানু হুডেক

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

5
দ্রুত এবং স্পাইক মুক্ত সম্পূর্ণ orthogonal বিভাগ। প্রজন্মের আবর্জনা সংগ্রহকারীরা আরও দ্রুত । তারা হয় না বিনামূল্যে গজাল।
জানু হুডেক

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

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

72

পাইথনের তুলনায় ৩.৯ গুণ গতিযুক্ত, যে ভাষাটি ধারাবাহিকভাবে বেশিরভাগ মানদণ্ডে যথেষ্ট মার্জিনের সাথে হারাতে থাকে (ঠিক আছে, এটি পার্ল, রুবি এবং পিএইচপি এর সাথে সমান; তবে এটি স্ট্যাটিকালি টাইপের যে কোনও কিছুতেই হেরে যায়), এমন কিছু হ'ল এটি নিয়ে গর্ব করা উচিত নয়।

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

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

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


13
আমি এই উত্তরটির বিন্দুটি বেশ বুঝতে পারি না। "বেঞ্চমার্কগুলি ত্রুটিযুক্ত" বলে আপনি কী উত্তর দিচ্ছেন "কীভাবে দ্রুত?" আপনি কি এই বিন্দু তৈরি করছেন? আমি দেখতে পাচ্ছি না যে এটি কীভাবে জিজ্ঞাসা করা হয়েছিল তার উত্তর দেয়।
ব্রায়ান ওকলে

15
@ ব্রায়ান ওকলে: আমি মনে করি না মানদণ্ডটি ত্রুটিযুক্ত, তবে সুইফট দ্রুততর যে স্থানে ছিল তারা সম্ভবত এমন একটি মানদণ্ডকে বেছে নিয়েছিল বলে বিবেচনা করা উচিত।
জানু হুডেক

23
এটি সম্ভব যে "সুইফ্ট কীভাবে দ্রুত?" হতে পারে "এটি আসলে নয়", @ ব্রায়ানওকলে; আমি যে জানার উত্তরটি থেকে পেয়েছি সেটাই। সর্বোপরি "মিথ্যা, জঘন্য মিথ্যা এবং পরিসংখ্যান"।
জোশ ক্যাসওয়েল

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

7
জান এর উত্তর Q1 এবং সম্ভবত Q2 এর একটি সঠিক উত্তর। মূল বক্তব্য হিসাবে যখন আমি একটি বিপণনের ইভেন্টের মানদণ্ডগুলি দেখেছি, আমি ভেবেছিলাম: "বাহ, নির্বাচিত সেরা ক্ষেত্রে কেবল 1,3x we
আমিন নেগম-আওয়াদ

5

অবজেক্টিভ-সি প্রতিটি পদ্ধতির কলকে গতিশীলভাবে প্রেরণ করে।

হাইপোথিসিস: সুইচ সংকলকটি লুপটির compareবাইরে থাকা পদ্ধতিটির সন্ধানকে উত্তোলনের জন্য মাপদণ্ড স্ট্যাটিক টাইপিং ব্যবহার করে sort। এর জন্য একটি সংকীর্ণ প্রকারের সীমাবদ্ধতা প্রয়োজন যা কেবল অ্যারের মধ্যে জটিল বস্তুগুলিকে মঞ্জুরি দেয়, কমপ্লেক্সের সাবক্লাসগুলি নয়।

(অবজেক্টিভ-সি তে আপনি যদি পদ্ধতিতে পয়েন্টারটি সন্ধানের জন্য ভাষা রানটাইম সমর্থনকে কল করে সত্যিই চান তবে নিজেই পদ্ধতিটির সন্ধানটি উত্তোলন করতে পারেন You আপনি আরও নিশ্চিত হন যে অ্যারেতে সমস্ত উদাহরণ একই শ্রেণীর হয়) ।)

হাইপোথিসিস: সুইফ্ট রেফারেন্স-কাউন্টিং কলগুলি লুপের বাইরে থেকে অনুকূল করে তোলে।

হাইপোথিসিস: সুইফট বেঞ্চমার্কটি একটি উদ্দেশ্য-সি অবজেক্টের জায়গায় একটি কমপ্লেক্স স্ট্রাক্ট ব্যবহার করে, সুতরাং বাছাই করা তুলনাগুলিকে গতিশীল পদ্ধতি প্রেরণগুলি (যেহেতু এটি সাবক্ল্যাস করা যায় না) বা রেফারেন্স-গণনা কার্যের প্রয়োজন হয় না (যেহেতু এটি একটি মান ধরণের)।

(অবজেক্টিভ-সিতে আপনি যতক্ষণ না এতে উদ্দেশ্যমূলক-সি অবজেক্টগুলিকে জড়িত না করেন ততক্ষণ পারফরম্যান্সের জন্য আপনি সি / সি ++ এ ফিরে যেতে পারেন, যেমন স্ট্রাইকগুলির সি অ্যারে বাছাই করুন))


3

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

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

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

সম্পূর্ণ প্রকাশ: আমি https://ind.ie/phoenix/ এ অবস্থিত একটি ওপেন সোর্স সুইফ্ট সংকলক লিখছি

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


2
এই আরো একটি ranty মন্তব্য দেখে মনে পড়লো, দেখুন উত্তর কিভাবে
মশা

2
এটা কি এখন ভাল? :)
greg.casamento

0

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

এই ক্ষেত্রে, আমি ধারণা করি অবজেক্টিভ-সি এর অবজেক্ট ওরিয়েন্টেড শুদ্ধতা (এবং ওভারহেড) এর শিকার of


13
একটি "জটিল অবজেক্ট সাজানোর" বেঞ্চমার্ক করা সি এর মতো ভাষায় কিছুটা কঠিন হয়ে উঠবে যেটির অবজেক্টগুলির স্থানীয় নেভিগেশন নেই doesn't এই আলোচনার জন্য শ্রোতা সম্ভবত 100% অবজেক্টিভ-সি প্রোগ্রামার ছিলেন, সি ++ এর মতো ভাষার সাথে তুলনা করলে খুব বেশি অর্থ হয় না। দ্রুতগতির বিন্দুটি "হেই, এটি এখন পর্যন্ত সবচেয়ে বড় ভাষা!" তবে "আরে, আপনি এখন ওএসএক্স / আইওএস বিকাশের জন্য যে ভাষাটি ব্যবহার করছেন তা তুলনায় এটি দ্রুত"।
ব্রায়ান ওকলে

10
সি এর পুরোপুরি জরিমানা রয়েছে qsortযা জটিল বস্তু বাছাইয়ের অনুমতি দেবে; এটি কেবল একটি কলব্যাক ব্যবহার করে যা হাতের জিনিসগুলি বোঝে। আমি সন্দেহ করি সি ++ অনুপস্থিত কারণ std::sortসুইফ্টকে বিব্রত করবে। (যেহেতু এটি একটি টেমপ্লেট, তাই একটি সি ++ সংকলক এটি
আনলোলিং

@ এসএমএলটারস: আমি আপনার সাথে পুরোপুরি একমত সি এবং সি ++ উভয়েরই সুইফ্টকে ছাড়িয়ে যাওয়ার ক্ষমতা রয়েছে। মৃত্যুদন্ড কার্যকর করা পরীক্ষা করা সম্ভব হবে? আমি সুইফট, অবজেক্টিভ-সি, সি ++ এবং সি-তে একই মানদণ্ড কার্যকর করতে ইচ্ছুক নয়
আঁকানো কালো

@ ব্রায়ানওকলে আরও বলেছেন, "এই ভাষার জন্য কম স্কোয়ার বন্ধনী প্রয়োজন!"
নিক বেডফোর্ড

1
এই উত্তরটি মোটেও জল ধরে না এবং মারাত্মক বিভ্রান্তিকর। ওও আসলে ধীর নয়, বাস্তবে আপনি যে দ্রুততম সিস্টেমে সন্ধান পাবেন এটি সি ++, জাভা এবং সি # হতে চলেছে এবং প্রোগ্রামিংয়ের স্টাইল (ভারী ওও বা না) ফলাফলের গতিটির সাথে খুব সামান্যই কাজ করবে যদি না আপনি সত্যিই থাকেন খারাপ কোড
বিল কে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.