Как я могу определить, сколько памяти моя программа в настоящее время занимает

Вы используете MySQL, таким образом, можно использовать их функцию, чтобы сделать точно это.

SELECT SQL_CALC_FOUND_ROWS t3.id, a,bunch,of,other,stuff 
FROM t1, t2, t3 
WHERE (associate t1,t2, and t3 with each other) 
GROUP BY t3.id 
LIMIT 10,20;

SELECT FOUND_ROWS(); -- for most recent query

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

6
задан Community 23 May 2017 в 12:33
поделиться

4 ответа

Вы можете попробовать GC.GetTotalMemory :

Возвращает количество байтов на данный момент думает выделить. А параметр указывает, является ли это метод может подождать короткий интервал перед возвращением, чтобы система собрать мусор и доработать объекты.

Важно отметить эту часть: «Извлекает количество байтов , которые в настоящее время считаются выделенными» . Это означает, что этот метод может быть не на 100% точным - пока вы знаете, что происходит, вы должны иметь возможность получить приблизительное представление об использовании вашей виртуальной памяти в данный момент выполнения вашего приложения.

Изменить: Теперь позвольте мне предложить другое решение, которое, вероятно, будет более продуктивным: использовать perfmon и счетчики производительности CLR .

5
ответ дан 8 December 2019 в 12:21
поделиться
long bytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
8
ответ дан 8 December 2019 в 12:21
поделиться

long bytes = System.Diagnostics.Process.GetCurrentProcess (). WorkingSet64 для получения дополнительной информации См. Здесь

3
ответ дан 8 December 2019 в 12:21
поделиться

Вам действительно нужно использовать профилировщик кода. Они расскажут вам, что именно происходит, где используется память и т. Д.

FYI: Это редко бывает там, где вы думаете.

3
ответ дан 8 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: