Vra

Ek is op soek na 'n paar van die artikels vir die CLR Profilering API, en baie van die artikels praat oor roeping SetILFunctionBody () om die werklike IL herskryf doen; egter nie een van daardie artikels eintlik verduidelik presies wat jy kan gebruik om die werklike metode IL grepe herskryf. Is daar 'n onbeheerde biblioteek daar buite wat dit moontlik maak om my te IL skryf, of sal ek moet een myself skryf?

Was dit nuttig?

Oplossing

Waarskynlik. Dit hang.

Die Mono Projek het 'n biblioteek genoem Cecil, wat jy hier kan toegang:

http://mono-project.com/Cecil

Maar dit reggekry kode, wat jy nie kan noem terwyl profilering. Jy kan 'n het 'n paar opsies al:

  1. Gebruik IPC. Jy kan 'n nuwe proses kuit, doen die herskryf met behulp van Cecil in die proses en dan slaag die grepe terug na jou profiler met behulp van die naam van pype.
  2. Port CECIL om C ++. Die kode se versprei onder die MIT / X11 lisensie, sodat jy dit sonder om jou veranderinge te deel kan doen.
  3. Net skryf jou eie goed van die grond af.

# 1 stel 'n klomp van die ekstra kompleksiteit. Jou profiler sou eindig met meer bewegende dele as wat dit regtig nodig is. Ook, die IPC stel 'n klomp van die ekstra oorhoofse.

# 2 sou 'n lang tyd in beslag neem. Gegee dat Cecil is nog net by weergawe 0.6, kan dit nie die tyd om dit te doen, vs die skryf van jou eie implementering werd.

# 3 sal jy die grootste mate van beheer te gee, en sou waarskynlik die mees performante wees. Maar sou dit aansienlik meer moeite neem as # 1 sou doen.

Ander wenke

Ek het 'n eenvoudige een vir OpenCover https://github.com/sawilde/opencover wat jy of enigiemand anders vir die saak kan nuttig

vind

Hierdie artikel mag hê wat jy is op soek na http://www.codeproject.com/KB/cs/IL_Rewriting.aspx

Die werklike grepe het iewers vandaan kom en as jy net die gebruik van die Profilering API dan moet jy dit self voorsien. In hierdie artikel gaan in-diepte oor hoe om dit (waarskynlik een van diegene wat jy gelees het) doen: http://msdn.microsoft.com/en-us/magazine/cc188743.aspx

'n meer 'n gemeenskaplike 'n tegniek is om werklik te skryf watter kode wat jy nodig het in watter taal wat u verkies en stel dit dan aan IL. Jy kan dan óf onttrek die opcodes by ontwerp-tyd en stoor dit waar jy dit kan bereik of onttrek hulle van jou saamgestel IL by run-time en stop dit waar jy dit nodig het.

AFAIK daar is geen onbeheerde biblioteke om jou te help met hierdie.

Ek neem aan jy wil om dit te doen omdat jy wil om te sien wat die tyd, sodat jy kan maak dit vinniger gaan (in teenstelling met net om verskeie tydsberekening info) neem. IMHO, het jy nie die profilering API nodig, as jy jou program onder 'n IDE kan hardloop en breek dit na willekeur. Hier's hoekom.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top