2013-03-04 24 views
8

La mia compilation fallisce su Ubuntu 12.10 con memoria 300mb disponibile (750mb totale, 350mb su MySQL), 1.5ghz, sto cercando di rielaborare il file di base di Hello World in una semplice pagina ajax. Sono abbastanza sicuro che non sia un problema di memoria a cuore da quando sono stato in grado di compilare il file ciao.C originale con g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals.memoria virtuale esaurita: Impossibile allocare memoria

sono sicuro che sto avvitando il C++ da quando ho strappato le budella di HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env) e mettere nell'esempio dall'esempio Wt :: JSON

HelloApplication::HelloApplication(const WEnvironment& env) 
    : WApplication(env) 
{ 
    Json::Object result; 
    Json::parse("{ " 
      " \"a\": \"That's great\", " 
      " \"b\": true " 
      "}", 
      result); 

    std::cerr << "Size: " << result.size(); << std::endl; // Size: 2 
    WString s = result.get("a"); 
    bool b = result.get("b"); 
    std::cerr << "a: " << s << ", b: " << b << std::endl; // a: That's great, b: true 
} 

Sono nuovo di C++, così Non ho quasi idea di quello che sto facendo. Tutto quello che posso fare è eseguire il più semplice dei file C++.

Ecco l'originale source to the hello world file.

Ecco dove ho ottenuto the json sample from.

Ripercussioni ** **

Wow, il mio livello di rispetto appena andato attraverso il tetto per la potenza di C++.

Questo ha completamente distrutto il mio VPS. Non posso riavviare. Non riesco nemmeno a reinstallare la mia distribuzione.

Quando finalmente entrerò in produzione, penso che avrò intenzione di creare un sistema di sviluppo completamente diverso per evitare che qualcosa del genere uccida il mio sistema di produzione.

+0

Non so perché qualcuno ti ha downvoted, sembra una buona domanda. Buona fortuna con questo ... +1. –

+4

La prima cosa che proverei è eseguire il programma sotto valgrind per vedere se trova perdite di memoria. – Voo

+0

@Voo Grazie per il nuovo strumento! (nuovo per me) –

risposta

0

Poiché la compilazione ha esito negativo con memoria esaurita, probabilmente non c'è abbastanza memoria per compilare il programma. Questo non può essere dovuto a "un problema di gestione delle sessioni" come suggerito nella risposta accettata. Mysql sta mangiando più del dovuto? 300MB è sufficiente per compilare C++ comunque?

Il servizio JSon (come per un'interfaccia REST) ​​in Wt viene eseguito tramite un WResource associato all'oggetto WServer. WApplication è per un'interfaccia utente interattiva.

+0

Se quel piccolo segmento di codice non può essere compilato con 300mb, quello è un pesante set di codice! Posso eseguire un server websocket ++ o java-websocket molto più complesso per alcuni 10s di MB. Tutto ciò che è stato fatto sopra è stato semplicemente ricevere alcune parti di JSON ed esportarle al terminale. –

Problemi correlati