Es muy difícil 'calcular' el uso del ancho de banda de la memoria. Hay muchos problemas de caché no triviales y MMU con los que lidiar. La única forma real de hacerlo es mediante el uso de simulaciones o mediciones del mundo real.
Puede obtener una idea 'aproximada' depurando el código y contando el número de operaciones de almacenamiento y carga de memoria realizadas. Sin embargo, saber si se trataba de un error de caché es otro problema.
Depende de su propósito. Si se trata de obtener una estimación aproximada, puede usar la regla general de que aproximadamente el 30% del código de propósito general se carga y almacena la memoria. Si está tratando de obtener el peor de los casos, puede suponer que las memorias caché pierden todo el tiempo y lo resuelven.
Una cosa potencial que podría hacer es observar la virtualización. Hay varias opciones de código abierto (me viene a la mente QEMU). Es posible exportar ciertas medidas de hardware de ellos.
¿Por qué está etiquetado como C#, C++ yc? – unwind