2011-01-21 73 views
10

Trên máy Windows, người dùng MATLAB có thể sử dụng các lệnh memory hoặc feature memstats. Tuy nhiên, cả hai cách này đều không hoạt động trên máy, không hoạt động như sau:MATLAB "bộ nhớ" chức năng trên mac?

 
>> memory 
??? Error using ==> memory 
Function MEMORY is not available on this platform. 

>> feature memstats 
??? Error using ==> feature 
An unknown feature was specified 

Có ai biết cách truy cập thông tin về việc sử dụng bộ nhớ trong matlab trên máy Mac không?

+0

Xem thêm câu hỏi này: http://stackoverflow.com/questions/5932598. – texnic

Trả lời

5

Tôi chưa thể tìm thấy lệnh sao chép chức năng của memory. Tuy nhiên, nếu bạn biết tổng số bộ nhớ mà hệ thống của bạn có, bạn có thể sử dụng who (hoặc vsize từ trao đổi tệp để biết thêm chi tiết) để ước tính dung lượng bộ nhớ hiện đang sử dụng và do đó bạn có bao nhiêu dung lượng trống.

Bằng cách này, bạn luôn có thể tìm hiểu về bộ nhớ Java bằng cách gọi

java.lang.Runtime.getRuntime.maxMemory 
java.lang.Runtime.getRuntime.totalMemory 
java.lang.Runtime.getRuntime.freeMemory 

Lưu ý rằng Matlab bộ nhớ và bộ nhớ Java là khác nhau - bộ nhớ Java được sử dụng cho giao diện người dùng, bao gồm cả số liệu, cũng như java khác đối tượng, trong khi memory báo cáo bộ nhớ có sẵn cho các biến và phép tính.

+0

Thật không may, câu trả lời này cũng không phải bởi @philippe cho tôi biết số tiền được phân bổ cho MATLAB, bao nhiêu được sử dụng bởi động cơ MATLAB, hoặc đảm bảo rằng bộ nhớ tiếp giáp, tất cả đều là các yếu tố ([link] (http://www.mathworks.com/support/tech-notes/1100/1106.html)). Tuy nhiên, đây là một giải pháp khá tốt. – eykanal

+0

@eykanal: Các hệ thống Linux có truyền thống quản lý bộ nhớ tốt hơn (mặc dù Windows dường như đã được cải thiện rất nhiều gần đây), vì vậy kích thước của khối lớn nhất chủ yếu là một vấn đề trong Windows. Tuy nhiên, vấn đề thực sự của IMHO mà không biết số lượng bộ nhớ trên máy Mac là bạn không biết khi nào bạn bắt đầu phân trang. – Jonas

+0

Vâng, đó, và rằng Matlab dường như chỉ sử dụng [một tập con của bộ nhớ có sẵn] (http://www.mathworks.com/support/tech-notes/1100/1107.html), tùy thuộc vào việc đó là một 32- hoặc Kiến trúc 64 bit. Tôi đang xử lý các tập dữ liệu rất lớn để tạo ra sự khác biệt đáng kể. – eykanal

1

memory chỉ khả dụng trên hệ thống Windows.

Thay vào đó, bạn có thể thử sử dụng top lệnh Mac được cài sẵn.

1

Tôi biết câu hỏi này là cũ và đã trả lời, nhưng đối với bất cứ ai khác tìm kiếm câu trả lời này, một sự thay thế hoạt động trên tất cả các nền tảng đó để sử dụng whos:

allvars = whos; 
memused = sum([allvars.bytes]); 

này giả định bạn chỉ có một không gian làm việc phúc được sử dụng bởi tập lệnh/chức năng của bạn. Nếu bạn có tập lệnh sử dụng nhiều không gian làm việc, bạn sẽ cần chỉ định tất cả các không gian làm việc khác nhau và thêm chúng cùng nhau.

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