2013-03-04 8 views
8

Moja kompilacja kończy się niepowodzeniem w Ubuntu 12.10 z dostępną pamięcią 300 Mb (łącznie 750 MB, 350 MB do MySQL), 1,5 godziny, próbuję przerobić wt podstawowy plik hello world na prostą stronę ajaxową. Jestem pewien, że to nie jest kwestia pamięci w sercu, ponieważ udało mi się skompilować oryginalny plik hello.C z g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals.wyczerpana pamięć wirtualna: Nie można przydzielić pamięci

jestem pewien, że jestem przekręcane C++ odkąd wyrwane wnętrzności HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env) i umieścić w przykładzie na przykładzie wag :: 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 
} 

Jestem nowy na C++, więc Nie mam prawie pojęcia, co robię. Wszystko, co mogę zrobić, to wykonać najprostszy z plików C++.

Oto oryginał source to the hello world file.

Oto gdzie dostałem the json sample from.

** Reperkusje **

Wow, mój poziom szacunku prostu poszedł przez dach do potęgi C++.

To całkowicie zniszczyło mój VPS. Nie mogę zrestartować. Nie mogę nawet ponownie zainstalować mojej dystrybucji.

Kiedy w końcu przejdę do produkcji, myślę, że zamierzam stworzyć zupełnie inny system dev, aby zapobiec takiemu zabijaniu mojego systemu produkcyjnego.

+0

Nie wiem, dlaczego ktoś cię zawiódł, wydaje się dobrym pytaniem. Powodzenia z tym ... +1. –

+4

Pierwszą rzeczą, którą chciałbym wypróbować, jest uruchomienie programu pod valgrind, aby sprawdzić, czy wykryje wycieki pamięci. – Voo

+0

@Voo Dziękujemy za nowe narzędzie! (nowe dla mnie) –

Odpowiedz

0

Ponieważ kompilacja kończy się niepowodzeniem z powodu braku pamięci, prawdopodobnie brakuje pamięci do kompilacji programu. Nie może to być spowodowane "problemem zarządzania sesją", jak sugeruje zaakceptowana odpowiedź. Czy mysql je więcej niż powinien? Czy mimo to 300 MB wystarcza do kompilacji C++?

Obsługa JSon (podobnie jak dla interfejsu REST) ​​we Wt odbywa się poprzez WResource związany z obiektem WServer. WAplikacja służy do interaktywnego interfejsu użytkownika.

+0

Jeśli ten mały segment kodu nie może być skompilowany z 300mb, jest to jeden ciężki zestaw kodu! Mogę uruchomić znacznie bardziej złożony serwer websocket ++ lub serwer java-websocket na kilka 10s MB. Wszystko, co powyżej, to po prostu otrzymanie niektórych jsonów i ich części wyjściowych do terminala. –