You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2015/10/15 16:07:05 UTC

[jira] [Created] (IGNITE-1694) .Net: More efficient way to call native methods.

Vladimir Ozerov created IGNITE-1694:
---------------------------------------

             Summary: .Net: More efficient way to call native methods.
                 Key: IGNITE-1694
                 URL: https://issues.apache.org/jira/browse/IGNITE-1694
             Project: Ignite
          Issue Type: Task
          Components: interop
    Affects Versions: ignite-1.4
            Reporter: Vladimir Ozerov
            Priority: Critical
             Fix For: 1.6


Currently we invoke native platform using "Marshal.GetDelegateForFunctionPointer". 

This is the least efficient way to call external code. What can be done to improve it:
1) Add [SuppressUnmanagedCodeSecurity] attribute.
2) Use P/Invoke instead. We do not use it now because we unpack native library in runtime into some temp folder, while PInvoke searches for libraries in predefined file system places. Need to evaluate whether we can switch back to P/Invoke somehow.

See http://ybeernet.blogspot.ru/2011/03/techniques-of-calling-unmanaged-code.html for more info.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)