ब्लोटवेयर प्रतियोगिता: 100+ मिब निष्पादन योग्य [बंद] का उत्पादन


22

अपनी पसंदीदा संकलित भाषा में शॉर्ट सोर्स कोड बनाएं जो एक बड़ी (104857600 बाइट्स से कम) निष्पादन योग्य फ़ाइल में संकलित करता है। कार्यक्रम को चलाने योग्य होना चाहिए (1 जीबी मुक्त मेमोरी मानकर) और कुछ भी कर सकते हैं (हेल्लो वर्ल्ड की तरह सरल कुछ)।

गैर-स्पष्ट चाल के उपयोग को प्रोत्साहित किया जाता है।

C में बोरिंग उदाहरण:

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

int main(){}

बोनस अंक अगर इसे "समझाया जा सकता है" तो निष्पादन योग्य आकार में कम क्यों नहीं किया जा सकता है (यानी सभी ब्लोट वास्तव में किसी भी तरह से उपयोग किया जाता है)।


7
सभी पुस्तकालयों को स्टैटिकली लिंक करें !
मारिनस

इसीलिए शुरू में 10+ MiB के बारे में सोचा गया था, लेकिन इसे संशोधित करके 100 + ... या इसका मतलब सिस्टम के सभी पुस्तकालयों से है?
वि।

क्या HTML फ़ाइल को निष्पादन योग्य माना जा सकता है?
xem

अनलिखी।󠀠󠀠󠀠
󠀠󠀠󠀠।

यदि विजयी मानदंड को "सबसे बड़ी आउटपुट फ़ाइल" या कुछ और में बदल दिया गया था, तो यह विषय पर रह सकता है, लेकिन यह वर्तमान उत्तरों को अमान्य कर देगा और इसे कम से कम एक अन्य चुनौती का डुप्लिकेट बना देगा। लोकप्रियता प्रतियोगिता टैग की स्थिति
बिल्ली

जवाबों:


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. रनटाइम के समय, यह पुष्टि करता है कि इस अनुक्रम में वास्तव में अपेक्षित मान शामिल हैं, और यदि नहीं, तो एक गैर-शून्य त्रुटि कोड देता है।

Ps। यदि मैंने अपना गणित सही किया, तो निष्पादन योग्य 100 MiB से अधिक होना चाहिए। एक बार संकलन करने के बाद मैं आपको सटीक आकार बता दूँगा ...


1
Ps। वास्तविक आकार को सत्यापित करने के मेरे प्रयासों को (उम्मीद के मुताबिक अस्थायी रूप से) एक असामान्य जीसीसी त्रुटि संदेश होने का संदेह है virtual memory exhausted: Cannot allocate memory। o_O यह देखने के लिए विकल्प चुनने की कोशिश करेगा कि क्या मैं इसे किसी तरह संकलित करने के लिए प्राप्त कर सकता हूं।
इल्मरी करोनें


इसके अलावा के साथ निर्माण नहीं कर सकते clang(आईसीई) और tcc
वि।

1
-O0कंपाइलर पर मांगों को कम करने के लिए सभी अनुकूलन ( ) को बंद करें , और सक्षम करने वाले पाइप ( -pipe) मदद कर सकते हैं या नहीं कर सकते हैं।
dmckee

3
यह संकलन समस्या आईओसीसी की एक विजेता प्रविष्टि की याद दिलाती है जो इस कार्यक्रम को सही करने के लिए अपने स्वयं के प्रीप्रोसेसर को लिखते हैं: ioccc.org/2004/vik2.hint
क्रिश्चियन

6

सी#

निश्चित नहीं है कि क्या यह छोटा है, क्योंकि स्रोत कोड समाप्त हो रहा है> 30k :)

यानी - बहुत बड़ी बोली। यहाँ इसका एक छोटा संस्करण है

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 वाला हो जाता है!

यह CLR जेनेरिक टाइप सिस्टम कैसे काम करता है, इसके कारण काम करता है। उपरोक्त कोड में प्रत्येक और प्रत्येक सूची <> एक नई प्रकार की घोषणा (सामान्य रूप से जेआईटी संकलन के माध्यम से, लेकिन एनजीएन एओटी संकलन करता है) उत्पन्न करेगा। तो सूची के लिए एक प्रकार <int>, सूची के लिए एक और <सूची <int>>, और इसी तरह। तो इस कोड के लिए, कुल 5160 विभिन्न सामान्य सूचियाँ बनाई जाएंगी।


1
आपको जिस चीज की आवश्यकता है वह एक स्क्रिप्ट है जो आपके प्रोग्राम को लिखेगी।
hildred

यह बल्कि कार्यक्रम के आकार को कम करने के लिए तुच्छ है (सूची के घोंसले के स्तर को हटाकर)। क्या इसे बनाया जा सकता है ताकि आप प्रोग्राम फ़ंक्शन को प्रभावित किए बिना आसानी से दोहराए जाने वाले कोड को हटा नहीं सकें?
वि।

ठीक है बेशक आप सिर्फ घोंसले के शिकार को हटा सकते हैं, लेकिन इसी तरह, C उदाहरण में आप कुछ #defines को हटा सकते हैं और कार्यक्रम को छोटा बना सकते हैं। जिस तरह से मैंने आवश्यकता की व्याख्या की कि इसे आकार में कम नहीं किया जा सकता है, यह था कि इसे दूर नहीं किया जा सकता है। यदि आपको स्रोत कोड को संशोधित करने की अनुमति है, तो मुझे बिंदु दिखाई नहीं देता है। :)
क्रिश्चियन पामस्टीरना

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 
       . 

थोड़ा सा ज्ञान एक खतरनाक चीज हो सकती है।

यह एक छोटी तुलना की तुलना में एक बड़ी करने के लिए तेज़ हो सकता है; आईबीएम के एंटरप्राइज COBOL (संस्करण 4.2 तक) में अधिकतम 128MB का काम हो सकता है (संस्करण 5.0 में 2GB हो सकता है); यदि आपको अधिक स्थान की आवश्यकता है तो LOCAL-STORAGE आगे 128MB प्रदान करता है।

कार्य यह पुष्टि करने के लिए है कि 11584-बाइट भंडारण के मूल्य का मूल्य "हेलो वर्ल्ड!" है। कहीं और, बाकी जगह है।

काल्पनिक, प्रोग्रामर इसके लिए एक उप-प्रोग्राम लिखने का फैसला करता है (बस मामले में यह कहीं और आवश्यक है), और उनकी उच्च-प्रदर्शन तकनीक (बोनस) को शामिल करने के लिए।

प्रोग्रामर यह गणना करता है कि 11584 * 11584 128MB है, इसलिए एक विशाल टेबल के लिए WORKING-STORAGE का उपयोग करता है, और LOCAL-STORAGE के लिए अन्य सभी चीजों की आवश्यकता होती है।

प्रोग्रामर इसे कोड करता है, और संकलन के साफ होने पर खुद को जानकर मुस्कुराता है। वे 128 एमबी के बारे में सही थे।

कोड का परीक्षण करता है। यह काम करता हैं। संभवतः थोड़ा धीमा है, लेकिन मशीन पर भारी भार है। फिर से मुस्कुराते हुए, यह सोचकर कि यदि उनके विशेषज्ञ ज्ञान के स्तर के बिना कोड किया जाता है तो यह कितना धीमा होगा।

वर्किंग-स्टोरेज 134,189,056 बाइट्स में आता है, और साथ ही अन्य सामान की कुछ अच्छी बाइट्स भी है। काफी बड़ा होना चाहिए।

वास्तविकता यह है कि एक छोटी तुलना के बजाय एक लंबी तुलना करना, जैसा कि यहां लागू किया गया है, इसे करने का एक बहुत धीमा तरीका है।

यहां तक ​​कि धीमी गति से, LOCAL-STORAGE, जो हर बार उप-प्रोग्राम को रन-टाइम रूटीन द्वारा आरम्भ किया जाता है, प्रत्येक CALL के लिए पूरे 128MB को सेट करने का कारण बनता है।

प्रोग्रामर सिर्फ टेबल के आकार के बारे में गलत था, LOCAL-STORAGE का उपयोग किए बिना पर्याप्त जगह है। लंबी तुलना छोटी तुलना को हरा सकती है, लेकिन केवल तभी जब तुलना की वास्तविक संख्या कम हो।

मैंने LOCAL-STORAGE और WORKING-STORAGE की अदला-बदली पर विचार किया, यह बहुत कम संभावना है कि कोई इसे इस तरह से राउंड कोड करेगा, इसलिए मैंने नहीं किया। टेबल पर वैल्यू स्पेस डालना (यदि यह LOCAL-STORAGE में होता तो) दो बार टेबल पर होता। प्रत्येक CALL पर , तो भी धीमा।

कार्यक्रम को दोबारा लिखे बिना ब्लोट को हटाया नहीं जा सकता। अधिकांश कोड खराब है, हालांकि एक उपयोगी तकनीक है।

यह एक वास्तविक जीवन का उदाहरण नहीं है, लेकिन मैं किसी को यह करने की कल्पना कर सकता हूं, अगर वह कोई बहुत चालाक है :-)

संकलन करना कोई समस्या नहीं है। हर संभावना के साथ इसे चलाना तेजी से प्रयास के लायक नहीं साबित होता है।

बेशक, एक बूढ़ा बग भी है। "खोज" कार्यों में एक बहुत ही सामान्य।



0

स्काला

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)
}

विशेष एनोटेशन बॉक्सिंग को रोकने के लिए प्रत्येक प्रकार के लिए एक नया वर्ग बनाता है जब प्रकार अंततः सभी वस्तुओं में बदल जाते हैं। Everythingयदि यह पहले दुर्घटना नहीं करता है, तो यह 10 ^ 8 (( 10 प्रकार के होते हैं) ^ (वर्ग पर 8 प्रकार के पैरामीटर) वर्ग फ़ाइलों को बनाएगा , प्रत्येक 300-500 बाइट्स।


इसे यह कहकर समझाया जा सकता है कि प्रदर्शन महत्वपूर्ण है, खासकर यदि वर्ग वास्तव में प्रिंट करने की एक विधि से अधिक है। घोषणा में यह सब डालने के बजाय सामान्य विशेष विधियों का उपयोग करना भी नोटिस करना कठिन होगा


इसे बनाने के लिए मुझे कौन सा स्कैला संस्करण चाहिए? 2.9.2 + dfsg-1 को "जो कुछ भी" पसंद नहीं है और यह scala.Specializable के बारे में नहीं जानता है।
वि।

स्केल 2.10 में s "" के साथ प्रक्षेपित तार शामिल हैं, लेकिन आप उस स्ट्रिंग को बिना किसी प्रभाव के निकाल सकते हैं। स्केल 2.8 में विशेषज्ञता की विशेषता है, इसलिए यदि आप प्रक्षेपित स्ट्रिंग को हटाते हैं, तो सब कुछ ठीक होना चाहिए।
15:605 पर user60561

-2

जावास्क्रिप्ट

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

इस कोड को ब्राउजर कंसोल में इस पेज पर चलाएं और पूरा होने पर पेज को सेव करें। इसका परिणाम 100 एमबी से अधिक फ़ाइल आकार में होना चाहिए। अभी भी परीक्षण कर रहा है। एक बार किए जाने के बाद वास्तविक आकार होगा।

अद्यतन-
सहेजा गया पृष्ठ परिणाम निष्पादन योग्य है। क्रोम का v8 इंजन कंपाइलर है। और मेरे द्वारा पोस्ट किया गया कोड प्रोग्राम है। मैं मानता हूं कि संकलन करने में लंबा समय लगता है। : डी


1
आवश्यकतानुसार काम नहीं करता है। कार्य एक निष्पादन योग्य फ़ाइल बनाना है जो कि बहुत बड़ी है, न कि वह जो चलने पर बहुत अधिक मेमोरी का उपभोग करती है। इसके अलावा, jQuery का अति प्रयोग।
जॉन ड्वोरक

@JanDvorak यह 100MB से अधिक आकार के साथ एक HTML फ़ाइल बनाएगा। साथ ही प्रश्न कोई भी JQuery उपयोग सीमाएँ निर्दिष्ट नहीं करता है। यह कार्यक्रम अभी भी मेरे क्रोम पर क्रियान्वित हो रहा है और पेज क्रोम टास्क मैनेजर द्वारा बताई गई 300mb मेमोरी खा रहा है।
rahulroy9202

यह नहीं होगा आप जो कुछ भी करते हैं वह शुद्ध रूप से स्मृति में होता है। यह केवल एक 100MB HTML फ़ाइल बनाएगा यदि उपयोगकर्ता एक ऑपरेशन को चलाता है। जिसे वह नहीं कर सकता है और न ही करना चाहता है। इसके अलावा, भले ही आप "संकलन" को लागू करने की इस प्रक्रिया को कहते हैं और आप परिणामस्वरूप HTML को एक फ़ाइल के रूप में संग्रहीत करने का प्रबंधन करते हैं, मुझे नहीं लगता कि आपको अपना कंपाइलर लिखने की अनुमति है।
जॉन ड्वोरक

@JanDvorak मैंने उत्तर में बताया है कि पृष्ठ को सहेजा जाना चाहिए। यहाँ, पृष्ठ निष्पादन योग्य है। क्रोम का v8 इंजन कंपाइलर है। और मेरे द्वारा पोस्ट किया गया कोड प्रोग्राम है।
rahulroy9202

2
V8 एक संकलक है जो एक छोटे "निष्पादन योग्य" (जो इसे हार्ड ड्राइव पर कभी नहीं मिलता है) का उत्पादन करता है और इसे निष्पादित करता है, जो तब एक विशाल "स्रोत फ़ाइल" उत्पन्न करने के लिए आगे बढ़ता है (ऐसी भाषा में जो संकलित नहीं है, और न ही एक प्रोग्रामिंग भाषा)। यदि आप अपनी स्क्रिप्ट के परिणाम को एग्जीक्यूटेबल (nope ...) कहते हैं, तो हमें आपकी स्क्रिप्ट को कंपाइलर कहना चाहिए , V8 को नहीं। यदि आपकी स्क्रिप्ट प्रक्रिया में निष्पादित हो जाती है, तो इसे संकलन नहीं कहा जाता है (मैक्रोज़ थोरा उस लाइन को धुंधला कर देता है, लेकिन यह एक मैक्रो नहीं है)
जॉन ड्वोरक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.