Câu hỏi này tương tự như one I recently asked about LLVM.V8 có gặp sự cố không nếu nó không thể cấp phát bộ nhớ? Điều này có làm hỏng toàn bộ quá trình không?
V8 phân bổ đối tượng JavaScript trên vùng lưu trữ được quản lý theo cách thủ công, bộ nhớ được lấy cuối cùng từ mmap/VirtualAlloc (trên Linux/Windows). Tuy nhiên, đối với cấu trúc dữ liệu nội bộ của nó, V8 uses C++ standard containers such as std::vector
. Nếu các vùng chứa này cần phân bổ bộ nhớ, nhưng không thể, chúng thường ném std::bad_alloc
.
Tuy nhiên, V8 is compiled with -fno-exceptions. Nếu không thể sử dụng ngoại lệ, V8 sẽ xử lý tình huống mà cấu trúc dữ liệu nội bộ không thể cấp phát bộ nhớ như thế nào? Nó có bị hỏng không? Nếu vậy, điều này có làm giảm bất kỳ quá trình nào nhúng V8 không?
Không, trình duyệt của tôi sử dụng "V8" cũng như nút node.js của tôi, theo như tôi thấy, các sự cố xảy ra khi vùng chứa ứng dụng xuất hiện. –
Xem chủ đề này: https://groups.google.com/forum/#!topic/v8-users/n-dbQX1AvTM. BTW, ngay cả hướng dẫn kiểu Google C++ nói "Chúng tôi không sử dụng ngoại lệ C++" https://google.github.io/styleguide/cppguide.html#Exceptions –
@VladislavIvanishin chỉ vì [legacy code] (http: // stackoverflow /2/5184115/google-c-style-hướng dẫn-không-ngoại lệ-quy tắc-stl) – jaggedSpire