ব্লাটওয়্যার প্রতিযোগিতা: 100+ এমআইবি নির্বাহযোগ্য [বন্ধ] উত্পাদন করছে


22

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

অ-সুস্পষ্ট কৌশলগুলির ব্যবহারকে উত্সাহ দেওয়া হয়।

সি তে উদাসীন উদাহরণ:

int a[1024*1024*25] = { 1 };

int main(){}

বোনাস পয়েন্টগুলি যদি এটি "ব্যাখ্যা" করা যায় তবে এক্সিকিউটেবলকে আকারে কেন হ্রাস করা যায় না (অর্থাত্ সমস্ত ব্লোট আসলে কোনওভাবে ব্যবহৃত হয়)।


7
সমস্ত লাইব্রেরি স্থিতি লিঙ্ক !
মেরিনাস

এ কারণেই প্রাথমিকভাবে 10+ মাইবি সম্পর্কে চিন্তাভাবনা করা হয়েছিল, তবে এটি 100+ এ পরিবর্তিত হয়েছে ... বা এর অর্থ সিস্টেমের সমস্ত লাইব্রেরি?
vi।

এইচটিএমএল ফাইলকে কি এক্সিকিউটেবল হিসাবে বিবেচনা করা যেতে পারে?
xem

Unlikely.󠀠󠀠󠀠
vi।

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

উত্তর:


13

ঠিক আছে, এখানে সি-তে আরও একটি, অস্পষ্টভাবে সংজ্ঞায়িত বোনাস পয়েন্টগুলির জন্য যাচ্ছি:

#define a(x) x,x|1,x|2,x|3,x|4,x|5,x|6,x|7
#define b(x) a(x),a(x|8),a(x|16),a(x|24)
#define c(x) b(x),b(x|32),b(x|64),b(x|96)
#define d(x) c(x),c(x|128),c(x|256),c(x|384)
#define e(x) d(x),d(x|512),d(x|4<<8),d(x|6<<8)
#define f(x) e(x),e(x|2048),e(x|4096),e(x|6144)
#define g(x) f(x),f(x|8192),f(x|4<<12),f(x|6<<12)
#define h(x) g(x),g(x|2<<14),g(x|4<<14),g(x|6<<14)
#define i(x) h(x),h(x|2<<16),h(x|4<<16),h(x|6<<16)
#define j(x) i(x),i(x|2<<18),i(x|4<<18),i(x|6<<18)
#define k(x) j(x),j(x|2<<20),j(x|4<<20),j(x|6<<20)
int u,v,z[]={k(0),k(2<<22),k(4<<22),k(6<<22)}
int main(){for(u=v=0;u<1<<25;u++)v|=u!=z[u];return v;}

মূলত, সংকলনের সময়, এটি 0 থেকে 2 25 - 1 পর্যন্ত পূর্ণসংখ্যার একটি আরোহণের ক্রম তৈরি করে - রানটাইমের সময়, এটি যাচাই করে যে সিকোয়েন্সটিতে প্রকৃতপক্ষে প্রত্যাশিত মান রয়েছে, এবং যদি না হয় তবে একটি শূন্য-ত্রুটি কোড প্রদান করে।

গীত। আমি যদি আমার গণিতটি সঠিকভাবে করি তবে এক্সিকিউটেবলটি 100 এমআইবির বেশি হওয়া উচিত। সংকলন শেষ হয়ে গেলে আমি আপনাকে সঠিক আকারটি জানাব ...


1
গীত। আসল আকার যাচাই করার জন্য আমার প্রচেষ্টা হয়েছে (আশা অস্থায়ীভাবে) আমি কি বরং একটি অস্বাভাবিক জিসিসি ত্রুটি বার্তা হতে সন্দেহ দ্বারা কোণঠাসা: virtual memory exhausted: Cannot allocate memory। o_O আমি কোনওভাবেই এটি সংকলন করতে পারি কিনা তা দেখতে বিকল্পগুলি টুইট করতে চেষ্টা করব।
ইলমারি করোনেন


clang(আইসিই) এবং দিয়ে তৈরি করতে পারে না tcc
vi।

1
সংকলকটির -O0চাহিদা কমিয়ে আনার জন্য সমস্ত অপ্টিমাইজেশন ( ) বন্ধ করুন এবং পাইপগুলিকে সক্ষম করা ( -pipe) সাহায্য করতে পারে বা নাও পারে।
dmckee

3
এই সংকলন সমস্যাটি আইওসিসি-র একটি বিজয়ী প্রবেশের কথা স্মরণ করিয়ে দেয় যারা এই প্রোগ্রামটি সঠিক ছিল তা যাচাই করতে নিজের প্রিপ্রসেসর লিখেছেন
ক্রিশ্চিয়ান

6

সি শার্প

এটি সংক্ষিপ্ত হিসাবে যোগ্যতা অর্জন করে কিনা তা নিশ্চিত নন, কারণ উত্স কোডটি> 30 কে :) হিসাবে শেষ হয়েছে

অর্থাত - উদ্ধৃতিটি খুব বড়। এটির একটি সামান্য সংক্ষিপ্ত সংস্করণ এখানে

using System.Collections.Generic;
class Program
{
    static void Main()
    {
        var a = new List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<int>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>();
    }
}

আমি যে কোডটি প্রকৃতপক্ষে সংকলন করেছি তা এখানে পাওয়া যাবে: http://pastebin.com/R5T3e3J0

এটি অপ্টিমাইজেশন ছাড়াই সংকলিত হয়ে গেলে ~ 45KiB এর একটি .EXE ফাইল তৈরি করবে। এটি আবার Ngen.exe (নেটিভ ইমেজ জেনারেটর) দিয়ে সংকলন করুন এবং এটি একটি বিশাল 104MiB হয়ে যায়!

সিএলআর জেনেরিক টাইপ সিস্টেম কীভাবে কাজ করে তার কারণে এটি কাজ করে। উপরের কোডের প্রতিটি এবং প্রত্যেকটি তালিকা একটি নতুন ধরণের ঘোষণা উত্পন্ন করবে (সাধারণত জেআইটি সংকলনের মাধ্যমে, তবে এনজেন এওটি সংকলন সম্পাদন করে)। সুতরাং তালিকার জন্য <টাইপ> এর জন্য এক প্রকার, তালিকা <তালিকার জন্য <<<<<< এবং আরও অনেক কিছু। সুতরাং এই কোডের জন্য, মোট 5160 বিভিন্ন জেনেরিক তালিকা তৈরি করা হবে।


1
আপনার যা দরকার তা হ'ল একটি স্ক্রিপ্ট যা আপনার প্রোগ্রামটি লিখবে।
hildred

প্রোগ্রামের আকার হ্রাস করার জন্য এটি (सूचीটির নীড়ের স্তরগুলি সরিয়ে) বরং তুচ্ছ। এটি এমনভাবে তৈরি করা যেতে পারে যাতে আপনি প্রোগ্রামের ফাংশনকে প্রভাবিত না করে পুনরাবৃত্তি কোডটি সহজেই সরাতে পারবেন না?
vi।

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

1
যদিও এটি লক্ষ করা উচিত যে এটি সম্ভবত অপ্টিমাইজ করা যেতে পারে, যেহেতু ভেরিয়েবলটি কখনই ব্যবহৃত হয় না।
খ্রিস্টান পামস্টেরিনা

4

ব্যবসায়িক কাজে ব্যবহৃত এক বিশেষ ধরনের কম্পিউটার ভাষা

   ID DIVISION. 
   PROGRAM-ID. BLOAT. 
   ENVIRONMENT DIVISION. 
   DATA DIVISION. 
   WORKING-STORAGE SECTION. 
   01  THE-TEST-STRINGS. 
       05  FILLER OCCURS 11584 TIMES. 
           10  TEST-STRING          PIC X(11584). 
   LOCAL-STORAGE SECTION. 
   01  FIRST-TIME-FLAG              PIC X VALUE "Y". 
   01  DISP-BEFORE-STRING     COMP  PIC 9(8). 
   01  LOOP-COUNTER           COMP  PIC 9(8). 
   01  START-STRING. 
       05  FILLER OCCURS 0 TO 11584 TIMES 
           DEPENDING ON DISP-BEFORE-STRING. 
           10  FILLER               PIC X. 
       05  THE-SUBSTRING            PIC X(12). 
   01  INITIAL-STRING               PIC X(12) 
                                     VALUE "HELLO WORLD!".
   LINKAGE SECTION. 
   01  STRING-PARAMETER             PIC X(11584). 
   01  THE-RESULT                   PIC X. 
   PROCEDURE DIVISION USING 
                                    STRING-PARAMETER 
                                    THE-RESULT 
                                    . 

       IF FIRST-TIME-FLAG = "Y" 
           PERFORM                  SET-UP-STRINGS 
       END-IF 
       PERFORM 
         VARYING                    LOOP-COUNTER 
         FROM                       1 
           BY                       1 
         UNTIL                      LOOP-COUNTER 
           GREATER THAN 11584 
         OR STRING-PARAMETER 
             EQUAL TO               TEST-STRING 
                                        ( LOOP-COUNTER ) 
       END-PERFORM 
       IF STRING-PARAMETER 
         EQUAL TO TEST-STRING ( LOOP-COUNTER ) 
           MOVE "Y"                TO THE-RESULT 
       ELSE 
           MOVE "N"                TO THE-RESULT 
       END-IF 
       GOBACK 
       . 
   SET-UP-STRINGS. 
       PERFORM 
         VARYING                    LOOP-COUNTER 
         FROM                       0 
           BY                       1 
         UNTIL                      LOOP-COUNTER 
           EQUAL TO 11584 
           MOVE 11584               TO DISP-BEFORE-STRING 
           MOVE SPACE               TO START-STRING 
           MOVE LOOP-COUNTER        TO DISP-BEFORE-STRING 
           MOVE INITIAL-STRING      TO THE-SUBSTRING 
           MOVE START-STRING        TO TEST-STRING 
                                        ( LOOP-COUNTER + 1 )
       END-PERFORM 
       MOVE "N"                     TO FIRST-TIME-FLAG 
       . 

অল্প জ্ঞান বিপদজনক জিনিস হতে পারে।

অনেক ছোট তুলনার তুলনায় একটি বড় তুলনা করা দ্রুততর হতে পারে; আইবিএম এর এন্টারপ্রাইজ কোবল (সংস্করণ 4.2 অবধি) 128 এমবি সর্বাধিক ওয়ার্কিং-স্টোর থাকতে পারে (সংস্করণ 5.0 এ 2 জিবি থাকতে পারে); আপনার আরও জায়গার প্রয়োজন হলে স্থানীয়-স্টোর আরও 128MB অফার করে।

কাজটি নিশ্চিত করা হয় যে একটি 11584-বাইট স্টোরেজের মানটির "হেল্লো ওয়ার্ল্ড!" কোথাও, এবং বাকি স্থান।

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

প্রোগ্রামার গণনা করে যে 11584 * 11584 হল 128MB, সুতরাং বিশাল টেবিলের জন্য ওয়ার্কিং-স্টোর ব্যবহার করে এবং প্রয়োজনীয় সমস্ত কিছুর জন্য স্থানীয় স্টোর ব্যবহার করে।

প্রোগ্রামার এটিকে কোড আপ করে এবং সংকলনটি পরিষ্কার হওয়ার পরে নিজের কাছে জেনে শুনে হাসে। তারা 128MB সম্পর্কে ঠিক ছিল।

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

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

বাস্তবতা হ'ল এখানে প্রয়োগ হিসাবে সংক্ষিপ্ত তুলনার পরিবর্তে দীর্ঘ তুলনা করা এটি করা খুব ধীর উপায়।

এমনকি ধীরে ধীরে, লোকাল-স্টোরেজ, যা রান-টাইম রুটিন দ্বারা প্রতিবার উপ-প্রোগ্রামটি কল করার সময় শুরু হয়, প্রতিটি সিএলএল এর জন্য পুরো 128 এমবি সেট আপ করে দেয়।

প্রোগ্রামারটি টেবিলের আকার সম্পর্কে ঠিক ভুল ছিল, লোকাল-স্টোর ব্যবহার না করে পর্যাপ্ত জায়গা রয়েছে। দীর্ঘ তুলনা সংক্ষিপ্ত তুলনা বীট করতে পারে, কিন্তু শুধুমাত্র যখন তুলনা প্রকৃত সংখ্যা হ্রাস করা হয়।

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

প্রোগ্রামটি পুনর্লিখন ছাড়া ব্লোটটি সরানো যাবে না। বেশিরভাগ কোডটি খারাপ, যদিও একটি কার্যকর কৌশল রয়েছে।

এটি বাস্তব জীবনের উদাহরণ নয়, তবে কেউ যদি যথেষ্ট চালাক হন তবে আমি এটি কল্পনা করতে পারি :-)

সংকলন মোটেও সমস্যা নয়। প্রতিটি সম্ভাব্যতার সাথে এটি চালানো দ্রুত প্রমাণ করার চেষ্টা করার মতো নয় বলে প্রমাণিত হয়।

অবশ্যই, পাশাপাশি একটি সরল পুরানো বাগ আছে। "অনুসন্ধান" কার্যগুলিতে খুব সাধারণ একটি।



0

scala

import scala.{specialized=>s}
import scala.Specializable.{Everything=>E}
class Printer[@s(E) A, @s(E) B, @s(E) C, @s(E) D, @s(E) E, @s(E) F, @s(E) G, @s(E) H]{
    def print(a:A,b:B,c:C)=println(s"$a, $b, $c")
}

object Main extends App{ 
    (new Printer[Int,Int,Int,Int,Int,Int,Int,Int]).print(1,2,3)
}

বিশেষায়িত টীকাগুলি বক্সিংটি প্রতিরোধ করার জন্য প্রতিটি ধরণের জন্য একটি নতুন ক্লাস তৈরি করে যখন প্রকারগুলি শেষ পর্যন্ত সমস্ত বস্তুতে পরিণত হয়। এটি 10 ​​^ 8 (( Everything10 ধরণের সমন্বিত) ^ (শ্রেণিতে 8 ধরণের পরামিতি)) শ্রেণি ফাইল তৈরি করবে, প্রতিটি 300-500 বাইট, যদি এটি ক্রাশ না করে তবে।


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


এটি তৈরি করার জন্য আমার কোন স্কাল সংস্করণ দরকার? 2.9.2 + dfsg-1 s "যাই হোক না কেন" পছন্দ করে না এবং স্কালার সম্পর্কে জানে না p স্পেশালাইজেশেবল।
vi।

স্কেলা ২.১০ এর মধ্যে "" যুক্ত ইন্টারপোল্টেড স্ট্রিং রয়েছে তবে আপনি আকারটি কোনও প্রভাব ছাড়াই স্ট্রিংটি সরাতে পারেন। স্কেলা ২.৮ এর স্পেশালাইজেশন বৈশিষ্ট্য রয়েছে, সুতরাং আপনি যদি আন্তঃবিবাহিত স্ট্রিংটি সরিয়ে ফেলেন তবে সবকিছু ঠিকঠাক কাজ করা উচিত।
ব্যবহারকারী 60561

-2

জাভাস্ক্রিপ্ট

function bigenough(){
        var kbytes = $('html').html().length;
        return (kbytes>1024*100);
}
while(!bigenough()){
$('html').append('<p>WASSUP</p>');}

এই পৃষ্ঠায় ব্রাউজার কনসোলে এই কোডটি চালান এবং সম্পূর্ণ হয়ে গেলে পৃষ্ঠাটি সংরক্ষণ করুন। এটির ফলাফলটি 100 এমবি-র চেয়ে বেশি হওয়া উচিত in এখনও পরীক্ষা হচ্ছে। একবার হয়ে গেলে প্রকৃত আকার পোস্ট করবে।

আপডেট-
সংরক্ষিত পৃষ্ঠাটি ফলাফল কার্যকর করা যায়। ক্রোমের ভি 8 ইঞ্জিন সংকলক। এবং আমি পোস্ট করা কোডটি হল প্রোগ্রাম। আমি স্বীকার করি যে এটি সংকলন করতে অনেক বেশি সময় নেয় না। : ডি


1
প্রয়োজনীয় হিসাবে কাজ করে না। কাজটি হ'ল একটি এক্সিকিউটেবল ফাইল তৈরি করা যা খুব বড়, চালানোর সময় খুব বেশি মেমরি খরচ করে এমন নয়। এছাড়াও, jQuery এর অতিরিক্ত ব্যবহার use
জন ডিভোরাক

@ জনডভোরাক এটি ১০০ এমবি এর চেয়ে বেশি আকারের একটি এইচটিএমএল ফাইল তৈরি করবে। এছাড়াও প্রশ্নটি কোনও JQuery ব্যবহারের সীমাবদ্ধতা নির্দিষ্ট করে না। প্রোগ্রামটি এখনও আমার ক্রোমে কার্যকর হচ্ছে এবং ক্রোম টাস্ক ম্যানেজারের রিপোর্ট অনুসারে পৃষ্ঠাটি 300 মেমরির মেমোরি গ্রহণ করছে।
rahulroy9202

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

@ জনডভোরাক আমি উত্তরে উল্লেখ করেছি যে পৃষ্ঠাটি অবশ্যই সংরক্ষণ করা উচিত। এখানে, পৃষ্ঠাটি ফলাফল কার্যকর করা যায়। ক্রোমের ভি 8 ইঞ্জিন সংকলক। এবং আমি পোস্ট করা কোডটি হল প্রোগ্রাম।
rahulroy9202

2
ভি 8 একটি সংকলক যা একটি ক্ষুদ্র "এক্সিকিউটেবল" উত্পাদন করে (যা এটি কখনই হার্ড ড্রাইভের কাছে পায় না) এবং এটি সম্পাদন করে, যা পরে বিশাল "উত্স ফাইল" তৈরি করতে এগিয়ে যায় (এমন একটি ভাষায় যা এমনকি সংকলিত হয় না, এবং একটিও নয়) প্রোগ্রাম ভাষা). যদি আপনি আপনার স্ক্রিপ্টটি একটি এক্সিকিউটেবল (নাঃ ...) তারপর আমরা কল করতে হবে এর কলের ফলাফল আপনার স্ক্রিপ্টটি কম্পাইলার, না V8। যদি আপনার স্ক্রিপ্টটি প্রক্রিয়াতে সম্পাদিত হয় তবে এটি সংকলন বলা হয় না (ম্যাক্রো কিন্ডা সেই লাইনটি অস্পষ্ট করে তোলে, তবে এটি কোনও ম্যাক্রো নয়)
জন ডিভোরাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.