[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.interop

C# - C++ DLL performance woes

Charles Jenkins

8/28/2007 1:35:00 PM

I have a C# application that calls a lower-level C++ dll to do serial
communication. (Using C++ for serial I/O is not necessary, but I was asked
to do this.)

Calls from C# to C++ functions generally look like this:

[DllImport( DLL_NAME, EntryPoint = "SetMultiplier" )]
private static extern WFGP_MSG DllSetMultiplier(
Int16 channel, UInt16 mult
);

All the calls made during a communication session use types that require no
translation in order to cross the boundary between managed and unmanaged
code. The P/Invoke calls should be just as fast as P/Invoke can be.

Everything works just fine. However, the application tends to "freeze" for
a few seconds after every few minutes of use. No data gets lost, so the
freeze is more of an annoyance than anything. However, I feel sure that it
is caused by something I am not doing correctly in the way I use unmanaged
code. My first instinct would be do assume that regular, long pauses are
caused by creating many, many objects that almost immediately go out of
scope, leaving a huge amount of work for the garbage collector. However, I
do not believe my code is creating tons of objects. Could a P/Invoke call
create a lot of temporary objects behind the scenes?

Does anyone know how you go about determining what causes regular, long
pauses like this?
11 Answers

(Mattias Sjögren)

8/28/2007 7:10:00 PM

0


>Could a P/Invoke call
>create a lot of temporary objects behind the scenes?

No, at least no managed objects. Not when using such simple parameter
types.


>Does anyone know how you go about determining what causes regular, long
>pauses like this?

I'd start by using a profiler.


Mattias

--
Mattias Sjögren [C# MVP] mattias @ mvps.org
http://www.msjogren.n... | http://www.dotneti...
Please reply only to the newsgroup.

Charles Jenkins

8/28/2007 8:39:00 PM

0

Mattias Sjögren <mattias.dont.want.spam@mvps.org> wrote in
news:uNx6jca6HHA.4712@TK2MSFTNGP04.phx.gbl:

>>Does anyone know how you go about determining what causes regular, long
>>pauses like this?
>
> I'd start by using a profiler.

You are right, of course. Thanks! :-)

Marcus Heege

9/4/2007 3:21:00 PM

0

One optimization option that you should think of is
[SuppressUnmanagedCodeSecurity]

Marcus Heege

"Charles Jenkins" <not.my.email.address@not.here.com> wrote in message
news:Xns999A618254E6Fcharlesedwardjenkins@207.46.248.16...
>I have a C# application that calls a lower-level C++ dll to do serial
> communication. (Using C++ for serial I/O is not necessary, but I was asked
> to do this.)
>
> Calls from C# to C++ functions generally look like this:
>
> [DllImport( DLL_NAME, EntryPoint = "SetMultiplier" )]
> private static extern WFGP_MSG DllSetMultiplier(
> Int16 channel, UInt16 mult
> );
>
> All the calls made during a communication session use types that require
> no
> translation in order to cross the boundary between managed and unmanaged
> code. The P/Invoke calls should be just as fast as P/Invoke can be.
>
> Everything works just fine. However, the application tends to "freeze" for
> a few seconds after every few minutes of use. No data gets lost, so the
> freeze is more of an annoyance than anything. However, I feel sure that it
> is caused by something I am not doing correctly in the way I use unmanaged
> code. My first instinct would be do assume that regular, long pauses are
> caused by creating many, many objects that almost immediately go out of
> scope, leaving a huge amount of work for the garbage collector. However, I
> do not believe my code is creating tons of objects. Could a P/Invoke call
> create a lot of temporary objects behind the scenes?
>
> Does anyone know how you go about determining what causes regular, long
> pauses like this?

Jah Houphouet Boigny

1/31/2011 8:49:00 AM

0

On Mon, 31 Jan 2011 00:55:34 +0100, FredB
<fbuRetirerLaSuite@skynet.be> wrote:

>
>Les pouvoirs du roi des Belges sont eux-m?mes tout-puissants. Le roi
>d?tient en effet le pouvoir ex?cutif, puisqu'il nomme et r?voque
>les ministres, mais aussi le pouvoir l?gislatif (il sanctionne et
>promulgue les lois), et il est en outre le chef des arm?es!
>De plus, tout fonctionnaire, pour pouvoir ?tre nomm?, est oblig? de
>pr?ter serment d'all?geance au roi (c'est-?-dire que m?me si le roi
>devient fou et se met ? d?cider n'importe quoi, les fonctionnaires se
>sentiront oblig?s par leur serment de lui ob?ir au doigt et ? l'oeil).
>Tout ceci est tout ? fait incompatible avec la notion m?me de
>d?mocratie et de libert? individuelle.

Vivement la charia, vivement la torture le lavage de t?te les sacs ?
patates en guise de fringues et les lapidations pour adult?re,
vivement les t?tes coup?es pour d?sob?issance au p?re, vivement le
pouvoir total des fanatiques sur les m?cr?ants, vivement que tu sois
pr?sident, vivement l'?tat militaire, vivement la dictature, vivement
....

Il faut que tu te trouves une dictature, il y en a plein ? c?der en ce
moment, ne rate pas l'occasion,

ne nous fais pas une d?pression, ou alors une toute petite et dans le
fond de ta cale, sans dommages collat?raux, une petite bombe ? clous
rien que pour toi.

Mara Jade Skywalker

1/31/2011 8:53:00 AM

0

Fustigator a os? ?crire:

> Oser comparer un monarque avec des dictateurs tout-puissants rel?ve de
> la malhonn?tet? intellectuelle.

En Belgique, le Roi "r?gne" mais ne "gouverne" pas. De plus, c'est un
?l?ment f?d?rateur du peuple belge.

Tous les Belges savent cela. Sauf cettre triple buse de Frederick B.

--
Jacqueline "Jade" Devereaux - http://jacqueline-devereaux.blo...
antispam.cool@gmail.com [remplacez antispam.cool par jacquie.devereaux]
http://fr-fr.facebook.com/people/Jacqueline-Devereaux/10000...
Victor: "Tsahal correctionne grave, disperse menu, et ventile loin!"
Mara: "I feel a great disturbance in the Force across the Galaxy"

FredB

1/31/2011 7:59:00 PM

0

On Mon, 31 Jan 2011 09:52:51 +0100, "Mara Jade Skywalker" wrote:

>> Oser comparer un monarque avec des dictateurs tout-puissants rel?ve de
>> la malhonn?tet? intellectuelle.
>
>En Belgique, le Roi "r?gne" mais ne "gouverne" pas. De plus, c'est un
>?l?ment f?d?rateur du peuple belge.
>
>Tous les Belges savent cela. Sauf cettre triple buse de Frederick B.

Pourquoi pensez-vous que je voudrais pr?server l'unit? du peuple
belge?? Je ne crois d?j? pas qu'il existe, ce peuple belge! En outre,
je dois ?tre un des seuls francophones ? avoir vot? Bart de Wever.
La Belgique est une erreur de l'Histoire, erreur qui doit ?tre
corrig?e.

Fred

Fustigator

2/3/2011 11:20:00 PM

0

Vitae forma vocata FredB <fbuRetirerLaSuite@skynet.be> , die Mon, 31
Jan 2011 00:55:34 +0100, in littera
<n0ubk6hosaj18jnh541svfa89t7erm290d@4ax.com> in foro
soc.culture.belgium(et aliis) vere scripsit quod sequitur:

>On Mon, 31 Jan 2011 00:24:59 +0100, Fustigator wrote:
>
>>>Maintenant que Ben Ali est parti et que Moubarak s'appr?te tout
>>>doucement ? le suivre, n'est-il pas temps de s'occuper des dictateurs
>>>de chez nous? Je rappelle qu'en Belgique le chef d'Etat (le Roi) n'est
>>>pas ?lu par le peuple, et le chef du gouvernement non plus (le Premier
>>>ministre ?tant nomm? par le Roi). Comment ose-t-on d?s lors se
>>>consid?rer comme une d?mocratie? Au lieu de descendre dans la rue par
>>>milliers pour demander un nouveau gouvernement, on ferait mieux de
>>>descendre dans la rue par milliers pour demander la t?te du Roi!
>>
>>Oser comparer un monarque avec des dictateurs tout-puissants rel?ve de
>>la malhonn?tet? intellectuelle.
>
>Les pouvoirs du roi des Belges sont eux-m?mes tout-puissants.

Tu rigoles...

>Le roi
>d?tient en effet le pouvoir ex?cutif, puisqu'il nomme et r?voque
>les ministres, mais aussi le pouvoir l?gislatif (il sanctionne et
>promulgue les lois), et il est en outre le chef des arm?es!

On a vu ce qui s'est pass? quand le roi pr?c?dent a refus? de
promulguer une loi ... Il a tout simplement "?t? d?gomm? par le
pouvoir r?el et seulement tremis en place par ce m?me" pouvoir, par
peur d'une r?volution.


>De plus, tout fonctionnaire, pour pouvoir ?tre nomm?, est oblig? de
>pr?ter serment d'all?geance au roi (c'est-?-dire que m?me si le roi
>devient fou et se met ? d?cider n'importe quoi, les fonctionnaires se
>sentiront oblig?s par leur serment de lui ob?ir au doigt et ? l'oeil).

en fait c'est au roi ? la constitution et aux lois du pays.
J'ai d? professionnellement pr?ter plusieurs fois ce serment.
Donc je sais de quoi je parle.

Toi aussi?
>Tout ceci est tout ? fait incompatible avec la notion m?me de
>d?mocratie et de libert? individuelle.

Non, vu que le s pouvoirs du roi sont symboliques.
>
>Fred
--

Fusti

FredB

2/4/2011 1:37:00 AM

0

On Fri, 04 Feb 2011 00:19:51 +0100, Fustigator wrote:

>>>>Maintenant que Ben Ali est parti et que Moubarak s'appr?te tout
>>>>doucement ? le suivre, n'est-il pas temps de s'occuper des dictateurs
>>>>de chez nous? Je rappelle qu'en Belgique le chef d'Etat (le Roi) n'est
>>>>pas ?lu par le peuple, et le chef du gouvernement non plus (le Premier
>>>>ministre ?tant nomm? par le Roi). Comment ose-t-on d?s lors se
>>>>consid?rer comme une d?mocratie? Au lieu de descendre dans la rue par
>>>>milliers pour demander un nouveau gouvernement, on ferait mieux de
>>>>descendre dans la rue par milliers pour demander la t?te du Roi!
>>>
>>>Oser comparer un monarque avec des dictateurs tout-puissants rel?ve de
>>>la malhonn?tet? intellectuelle.
>>
>>Les pouvoirs du roi des Belges sont eux-m?mes tout-puissants.
>
>Tu rigoles...
>
>>Le roi
>>d?tient en effet le pouvoir ex?cutif, puisqu'il nomme et r?voque
>>les ministres, mais aussi le pouvoir l?gislatif (il sanctionne et
>>promulgue les lois), et il est en outre le chef des arm?es!
>
>On a vu ce qui s'est pass? quand le roi pr?c?dent a refus? de
>promulguer une loi ... Il a tout simplement "?t? d?gomm? par le
>pouvoir r?el et seulement tremis en place par ce m?me" pouvoir, par
>peur d'une r?volution.

Il a "?t? d?gomm?" avec son accord! Puisqu'il ne s'en est jamais
plaint par la suite, alors qu'il ?tait libre de le faire. Baudouin
aurait tr?s bien pu s'opposer clairement ? l'avortement et emp?cher
la loi de passer, comme son p?re s'?tait oppos? ? la poursuite de
la guerre en 1940 et s'?tait rendu aux Allemands contre l'avis de son
gouvernement. Si c'est pas une preuve de pouvoir mal exerc?, ?a...

>>De plus, tout fonctionnaire, pour pouvoir ?tre nomm?, est oblig? de
>>pr?ter serment d'all?geance au roi (c'est-?-dire que m?me si le roi
>>devient fou et se met ? d?cider n'importe quoi, les fonctionnaires se
>>sentiront oblig?s par leur serment de lui ob?ir au doigt et ? l'oeil).
>
>en fait c'est au roi ? la constitution et aux lois du pays.
>J'ai d? professionnellement pr?ter plusieurs fois ce serment.
>Donc je sais de quoi je parle.

Vous devriez avoir honte. Ca rappelle un peu le serment de fid?lit?
? Adolf Hitler. Et encore, c'est pire puisqu'Adolf Hitler, lui, est
arriv? au pouvoir par les urnes, contrairement au Roi des Belges.

>>Tout ceci est tout ? fait incompatible avec la notion m?me de
>>d?mocratie et de libert? individuelle.
>
>Non, vu que le s pouvoirs du roi sont symboliques.

Symboliques? Lors de la derni?re l?gislature, et alors que les Belges
n'avaient vot? qu'une seule fois, le Roi a d?sign? 4 Premier ministres
successifs: d'abord Guy Verhofstadt (perdant des ?lections), puis Yves
Leterme, puis Herman Van Rompuy (qui avait obtenu tr?s peu de voix),
puis de nouveau Yves Leterme alors qu'il ?tait d?cr?dibilis? et que
Van Rompuy commen?ait ? devenir populaire. Et maintenant que nous
avons eu de nouvelles ?lections, l'ancien Premier ministre, dont le
parti a ?t? lamin?, est charg? par le Roi de boucler le budget 2011!
Bref le Roi se comporte comme quelqu'un qui court-circuite le r?sultat
des ?lections, la volont? populaire. C'est anti-d?mocratique.

Il ferait mieux de d?missionner comme Ben Ali et bient?t Moubarak
avant d'?tre pouss? dehors par les nationalistes flamands de plus
en plus nombreux et tous les vrais d?mocrates. Albert II, d?gage!

Fred

mille sabords

2/4/2011 2:14:00 PM

0

On Fri, 04 Feb 2011 02:36:34 +0100, FredB
<fbuRetirerLaSuite@skynet.be> wrote:

>Adolf Hitler, lui, est
>arriv? au pouvoir par les urnes, contrairement au Roi des Belges.

meraviglioso ? kamizole kamizole ?

Fustigator

2/4/2011 4:05:00 PM

0

Vitae forma vocata FredB <fbuRetirerLaSuite@skynet.be> , die Fri, 04
Feb 2011 02:36:34 +0100, in littera
<g2kmk6dihgh7196rnh0l237dh2vte2vrfk@4ax.com> in foro
soc.culture.belgium(et aliis) vere scripsit quod sequitur:

>On Fri, 04 Feb 2011 00:19:51 +0100, Fustigator wrote:
>
>>>>>Maintenant que Ben Ali est parti et que Moubarak s'appr?te tout
>>>>>doucement ? le suivre, n'est-il pas temps de s'occuper des dictateurs
>>>>>de chez nous? Je rappelle qu'en Belgique le chef d'Etat (le Roi) n'est
>>>>>pas ?lu par le peuple, et le chef du gouvernement non plus (le Premier
>>>>>ministre ?tant nomm? par le Roi). Comment ose-t-on d?s lors se
>>>>>consid?rer comme une d?mocratie? Au lieu de descendre dans la rue par
>>>>>milliers pour demander un nouveau gouvernement, on ferait mieux de
>>>>>descendre dans la rue par milliers pour demander la t?te du Roi!
>>>>
>>>>Oser comparer un monarque avec des dictateurs tout-puissants rel?ve de
>>>>la malhonn?tet? intellectuelle.
>>>
>>>Les pouvoirs du roi des Belges sont eux-m?mes tout-puissants.
>>
>>Tu rigoles...
>>
>>>Le roi
>>>d?tient en effet le pouvoir ex?cutif, puisqu'il nomme et r?voque
>>>les ministres, mais aussi le pouvoir l?gislatif (il sanctionne et
>>>promulgue les lois), et il est en outre le chef des arm?es!
>>
>>On a vu ce qui s'est pass? quand le roi pr?c?dent a refus? de
>>promulguer une loi ... Il a tout simplement "?t? d?gomm? par le
>>pouvoir r?el et seulement tremis en place par ce m?me" pouvoir, par
>>peur d'une r?volution.
>
>Il a "?t? d?gomm?" avec son accord!

je ne vois pas d'autre solution.

> Puisqu'il ne s'en est jamais
>plaint par la suite, alors qu'il ?tait libre de le faire.

Non il n'?tait pas libre de le faire.

>Baudouin
>aurait tr?s bien pu s'opposer clairement ? l'avortement et emp?cher
>la loi de passer,

sa lettre ? Mille-Fites Wartens ?tait pourtant tr?s claire: ik
refusait de signer la loi, mais ne pouvait pas emp?cher h?las la
d?mocratie particratique de fonctionner.

>comme son p?re s'?tait oppos? ? la poursuite de
>la guerre en 1940 et s'?tait rendu aux Allemands contre l'avis de son
>gouvernement.

Il faut comparer ce qui est comparable.

L?o III ?tait en Belgique, son gouvernement ?tait en d?bandade en
France puis en Angleterre.

>Si c'est pas une preuve de pouvoir mal exerc?, ?a...

je ne trouve pas.

>>>De plus, tout fonctionnaire, pour pouvoir ?tre nomm?, est oblig? de
>>>pr?ter serment d'all?geance au roi (c'est-?-dire que m?me si le roi
>>>devient fou et se met ? d?cider n'importe quoi, les fonctionnaires se
>>>sentiront oblig?s par leur serment de lui ob?ir au doigt et ? l'oeil).
>>
>>en fait c'est au roi ? la constitution et aux lois du pays.
>>J'ai d? professionnellement pr?ter plusieurs fois ce serment.
>>Donc je sais de quoi je parle.
>
>Vous devriez avoir honte. Ca rappelle un peu le serment de fid?lit?
>? Adolf Hitler.

Vous d?lirez ici.

> Et encore, c'est pire puisqu'Adolf Hitler, lui, est
>arriv? au pouvoir par les urnes, contrairement au Roi des Belges.
>
le roi repr?sente la nation.
C'est pas pareil.

Hitler a ?t? nomm? par le pr?sident Hindenburg.

>>>Tout ceci est tout ? fait incompatible avec la notion m?me de
>>>d?mocratie et de libert? individuelle.
>>
>>Non, vu que le s pouvoirs du roi sont symboliques.
>
>Symboliques? Lors de la derni?re l?gislature, et alors que les Belges
>n'avaient vot? qu'une seule fois, le Roi a d?sign? 4 Premier ministres
>successifs: d'abord Guy Verhofstadt (perdant des ?lections), puis Yves
>Leterme, puis Herman Van Rompuy (qui avait obtenu tr?s peu de voix),
>puis de nouveau Yves Leterme alors qu'il ?tait d?cr?dibilis? et que
>Van Rompuy commen?ait ? devenir populaire. Et maintenant que nous
>avons eu de nouvelles ?lections, l'ancien Premier ministre, dont le
>parti a ?t? lamin?, est charg? par le Roi de boucler le budget 2011!
>Bref le Roi se comporte comme quelqu'un qui court-circuite le r?sultat
>des ?lections, la volont? populaire. C'est anti-d?mocratique.

Vous trouvez?
Ce que nous politi-chiens actuels font depuis les derni?res ?lections
dans le domaine des attractions de cirque, est bien pire.
>
>Il ferait mieux de d?missionner comme Ben Ali et bient?t Moubarak
>avant d'?tre pouss? dehors par les nationalistes flamands de plus
>en plus nombreux et tous les vrais d?mocrates. Albert II, d?gage!

il n'est pas un dictateur.
Si vous prenez les nationalistes flamands pour des d?mocrates, votre
na?vet? est immense.
N'oubliez pas l'attitude de leurs anc?tres id?ologiques durant les
deux guerres mondiales.
>Fred
--

Fusti