2013-03-04 40 views
8

Trình biên dịch của tôi không thành công trên ubuntu 12.10 với bộ nhớ 300MB (750mb tổng, 350mb đến MySQL), 1.5ghz, tôi đang cố gắng sửa lại tệp cơ bản hello của wt thành một trang ajax đơn giản. Tôi khá chắc chắn nó không phải là một vấn đề bộ nhớ trong trái tim kể từ khi tôi đã có thể biên dịch file hello.C gốc với g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals.bộ nhớ ảo đã cạn kiệt: Không thể cấp phát bộ nhớ

Tôi chắc rằng tôi đang điều chỉnh các C++ kể từ khi tôi tách ra khỏi ruột của HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env) và đặt trong ví dụ từ ví dụ 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 
} 

Tôi mới để C++, vì vậy Tôi gần như không biết mình đang làm gì. Tất cả những gì tôi có thể làm là thực hiện các tệp C++ đơn giản nhất.

Đây là số source to the hello world file gốc.

Đây là nơi tôi nhận được the json sample from.

hậu quả ** **

Wow, mức độ tôn trọng của tôi chỉ đi qua mái nhà cho sức mạnh của C++.

Điều này đã phá hủy hoàn toàn VPS của tôi. Tôi không thể khởi động lại. Tôi thậm chí không thể cài đặt lại bản phân phối của mình.

Khi tôi cuối cùng đi vào sản xuất, tôi nghĩ rằng tôi sẽ thiết lập một hệ thống dev hoàn toàn khác để ngăn chặn những thứ như thế này giết chết hệ thống sản xuất của tôi.

+0

Không biết tại sao một người nào đó đã downvoted bạn, có vẻ như là một câu hỏi hay. Chúc may mắn với điều này ... +1. –

+4

Điều đầu tiên tôi muốn thử là chạy chương trình theo valgrind để xem có phát hiện rò rỉ bộ nhớ nào không. – Voo

+0

@Voo Cảm ơn bạn về công cụ mới! (mới đối với tôi) –

Trả lời

0

Vì quá trình biên dịch của bạn không hết bộ nhớ, có thể không đủ bộ nhớ để biên dịch chương trình của bạn. Điều này không thể là do 'vấn đề quản lý phiên' như được đề xuất trong câu trả lời được chấp nhận. Là mysql ăn nhiều hơn nó nên? Có đủ 300MB để biên dịch C++ không?

Phục vụ JSon (như đối với giao diện REST) ​​trong Wt được thực hiện thông qua WResource được ràng buộc với đối tượng WServer. WApplication dành cho giao diện người dùng tương tác.

+0

Nếu đoạn mã nhỏ đó không thể được biên dịch với 300MB, thì đó là một bộ mã nặng! Tôi có thể chạy một máy chủ websocket ++ hoặc java-websocket phức tạp hơn nhiều cho một số 10s của mb. Tất cả những điều trên đã chỉ đơn giản là nhận được một số phần json và đầu ra của nó đến thiết bị đầu cuối. –

Các vấn đề liên quan