Вы используете 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
Вы можете попробовать GC.GetTotalMemory
:
Возвращает количество байтов на данный момент думает выделить. А параметр указывает, является ли это метод может подождать короткий интервал перед возвращением, чтобы система собрать мусор и доработать объекты.
Важно отметить эту часть: «Извлекает количество байтов , которые в настоящее время считаются выделенными» . Это означает, что этот метод может быть не на 100% точным - пока вы знаете, что происходит, вы должны иметь возможность получить приблизительное представление об использовании вашей виртуальной памяти в данный момент выполнения вашего приложения.
Изменить: Теперь позвольте мне предложить другое решение, которое, вероятно, будет более продуктивным: использовать perfmon
и счетчики производительности CLR .
long bytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
long bytes = System.Diagnostics.Process.GetCurrentProcess (). WorkingSet64 для получения дополнительной информации См. Здесь
Вам действительно нужно использовать профилировщик кода. Они расскажут вам, что именно происходит, где используется память и т. Д.
FYI: Это редко бывает там, где вы думаете.