.NET a pin_ptr

CxxDaemon

.NET a pin_ptr
« kdy: 06. 05. 2017, 20:55:52 »
Nedávno jsem dostal za úkol integrovat do aplikace v C# externí knihovnu v C a jak tak koukám do kódu, objekty se do ní předávají přes pin_ptr. Díky dokumentaci MS chápu, k čemu to je, ale mám dotaz: když si ta knihovna nějaký takový objekt nechá někde v kolekci, nebude to pak negativně ovlivňovat běh GC? Zatím jsem žádnou divnost na testovacích datech nepozoroval, ale trochu se bojím ostrého provozu.


CxxDaemon

Re:.NET a pin_ptr
« Odpověď #1 kdy: 08. 05. 2017, 15:21:07 »
Nedávno jsem dostal za úkol integrovat do aplikace v C# externí knihovnu v C a jak tak koukám do kódu, objekty se do ní předávají přes pin_ptr. Díky dokumentaci MS chápu, k čemu to je, ale mám dotaz: když si ta knihovna nějaký takový objekt nechá někde v kolekci, nebude to pak negativně ovlivňovat běh GC? Zatím jsem žádnou divnost na testovacích datech nepozoroval, ale trochu se bojím ostrého provozu.
Tak vyřešeno. .NET je peklo.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:.NET a pin_ptr
« Odpověď #2 kdy: 18. 05. 2017, 20:46:12 »
Nedávno jsem dostal za úkol integrovat do aplikace v C# externí knihovnu v C a jak tak koukám do kódu, objekty se do ní předávají přes pin_ptr. Díky dokumentaci MS chápu, k čemu to je, ale mám dotaz: když si ta knihovna nějaký takový objekt nechá někde v kolekci, nebude to pak negativně ovlivňovat běh GC? Zatím jsem žádnou divnost na testovacích datech nepozoroval, ale trochu se bojím ostrého provozu.
Tak vyřešeno. .NET je peklo.
pin_ptr je zlo, nebrat  >:(

jpu

Re:.NET a pin_ptr
« Odpověď #3 kdy: 18. 05. 2017, 22:13:50 »
Nedávno jsem dostal za úkol integrovat do aplikace v C# externí knihovnu v C a jak tak koukám do kódu, objekty se do ní předávají přes pin_ptr. Díky dokumentaci MS chápu, k čemu to je, ale mám dotaz: když si ta knihovna nějaký takový objekt nechá někde v kolekci, nebude to pak negativně ovlivňovat běh GC? Zatím jsem žádnou divnost na testovacích datech nepozoroval, ale trochu se bojím ostrého provozu.
Tak vyřešeno. .NET je peklo.
to .NET hodnotis na zaklade toho, ze mas komplikacie s integraciou Ceckovej kniznice? Radsej sa teda C# vyhybaj.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:.NET a pin_ptr
« Odpověď #4 kdy: 18. 05. 2017, 23:19:08 »
Nedávno jsem dostal za úkol integrovat do aplikace v C# externí knihovnu v C a jak tak koukám do kódu, objekty se do ní předávají přes pin_ptr. Díky dokumentaci MS chápu, k čemu to je, ale mám dotaz: když si ta knihovna nějaký takový objekt nechá někde v kolekci, nebude to pak negativně ovlivňovat běh GC? Zatím jsem žádnou divnost na testovacích datech nepozoroval, ale trochu se bojím ostrého provozu.
Tak vyřešeno. .NET je peklo.
to .NET hodnotis na zaklade toho, ze mas komplikacie s integraciou Ceckovej kniznice?
.NET má bump allocator, tak je celkem logické, že sdílení dat s céčkem nebude úplně ideální a pokud někdo přesně neví, jak pin_ptr (nebo interior_ptr) funguje, tak ho procitnutí může nemile překvapit.