NHI1 10.0
|
NHI1 -
theKernel -
theLink -
theConfig -
theSq3Lite -
theCompiler -
theBrain -
theGuard -
theLib -
theATL
Nhi1Label - Nhi1BuildExtension - Nhi1Config - Nhi1Exec - Nhi1Switch - Nhi1Tags - Nhi1Docs |
Many things that are hard to do in another language are easy to do in C#. Integrating MONO into the NHI1-build-environment was child's play and otherwise I can only report positive things.
Now I unfortunately have to report that MONO has been sold to microsoft, which would be completely legitimate if MONO still existed.
The biggest difference between MONO and .NET is the build environment, which is completely different, which logically also has a consequence with the integration into the NHI1-build-environment.
There are two basic types of build environments :
Since, as described :
A thread is always a problem for so-called "high-level languages", i.e. everything outside of C and C++.
Now MONO has been sold to microsoft, which initially favors a switch to their C# implementation .NET.
To make a long story short:
summary:
MqSysServerThreadF
interfaceIn Programming-Language-Micro-Kernel (PLMK), the connection to a language such as C# is regulated by a reference.
MkObjectC::phdl
.MkObjectS::self
.The pointer of a C# object is stored as week or strong reference :
NULL
if necessary.IntPtr GCHandle.Alloc(this,GCHandleType.Weak)
object? GCHandle.FromIntPtr(self).Target
(null return possible)GCHandle.FromIntPtr(self).Free()
IntPtr GCHandle.Alloc(this)
object GCHandle.FromIntPtr(self).Target
(null return not possible)GCHandle.FromIntPtr(self).Free()
META_STRONG_REF
I only compare the performance of C# with the performance of Java as a direct competitor.
call: 'NHI1_HOME/performance/performance.bash' 'pr' '--send-nothing' '--sec' '4' '_pipe' setup=perf-release > feature=atl_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/tclsh8.5 .../perf-release/inst/sbin/atl/x86_64-suse-linux-gnu-perfserver.atl C> {x86_64-suse-linux-gnu-perfclient:pid(29708):tid(0x7f90211fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f90211e8c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29708):tid(0x7f90211fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f90211e8c20):statistics }: --send-nothing : 416208.0 [ 1665048 / 4.000519 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29708):tid(0x7f90211fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f90211e8c20):PerfClientExec }: end: ---------------------------------------- > feature=cc_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ .../perf-release/inst/sbin/cc/x86_64-suse-linux-gnu-perfserver C> {x86_64-suse-linux-gnu-perfclient:pid(29724):tid(0x7f6a328debc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6a328c9c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29724):tid(0x7f6a328debc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6a328c9c20):statistics }: --send-nothing : 475066.7 [ 1900355 / 4.000186 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29724):tid(0x7f6a328debc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6a328c9c20):PerfClientExec }: end: ---------------------------------------- > feature=c_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfserver C> {x86_64-suse-linux-gnu-perfclient:pid(29740):tid(0x7f8cc4984bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f8cc496fc20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29740):tid(0x7f8cc4984bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f8cc496fc20):statistics }: --send-nothing : 459824.7 [ 1839448 / 4.000324 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29740):tid(0x7f8cc4984bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f8cc496fc20):PerfClientExec }: end: ---------------------------------------- > feature=cs_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ /usr/bin/mono .../perf-release/inst/share/NHI1/perfserver.exe C> {x86_64-suse-linux-gnu-perfclient:pid(29763):tid(0x7f94957dfbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f94957cac20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29763):tid(0x7f94957dfbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f94957cac20):statistics }: --send-nothing : 348566.2 [ 1394543 / 4.000798 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29763):tid(0x7f94957dfbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f94957cac20):PerfClientExec }: end: ---------------------------------------- S> {perfserver :pid(29764):tid(0x7fd19caf42c0):L:dlv(0):ctxId( 0):rc(2):ctx(0x55767a219b10):MkSelfDeleteForce_RT }: Warning: HARD RESET with: 0x55767a21e830->self == NULL > feature=jv_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ /usr/bin/java -jar .../perf-release/inst/share/NHI1/perfserver.jar C> {x86_64-suse-linux-gnu-perfclient:pid(29784):tid(0x7f9f5ad5abc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f9f5ad45c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29784):tid(0x7f9f5ad5abc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f9f5ad45c20):statistics }: --send-nothing : 410034.6 [ 1640380 / 4.000589 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29784):tid(0x7f9f5ad5abc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f9f5ad45c20):PerfClientExec }: end: ---------------------------------------- > feature=py_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/python3 .../perf-release/inst/sbin/py/x86_64-suse-linux-gnu-perfserver.py C> {x86_64-suse-linux-gnu-perfclient:pid(29821):tid(0x7f83af99ebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f83af989c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29821):tid(0x7f83af99ebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f83af989c20):statistics }: --send-nothing : 433685.6 [ 1734940 / 4.000456 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29821):tid(0x7f83af99ebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f83af989c20):PerfClientExec }: end: ---------------------------------------- > feature=rb_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/ruby .../perf-release/inst/sbin/rb/x86_64-suse-linux-gnu-perfserver.rb C> {x86_64-suse-linux-gnu-perfclient:pid(29847):tid(0x7f58d83d0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f58d83bbc20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29847):tid(0x7f58d83d0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f58d83bbc20):statistics }: --send-nothing : 412867.4 [ 1651694 / 4.000544 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29847):tid(0x7f58d83d0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f58d83bbc20):PerfClientExec }: end: ---------------------------------------- > feature=tcl_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --send-nothing --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/tclsh8.6 .../perf-release/inst/sbin/tcl/x86_64-suse-linux-gnu-perfserver.tcl C> {x86_64-suse-linux-gnu-perfclient:pid(29868):tid(0x7ff59a949bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7ff59a934c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29868):tid(0x7ff59a949bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7ff59a934c20):statistics }: --send-nothing : 328504.7 [ 1314202 / 4.000558 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29868):tid(0x7ff59a949bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7ff59a934c20):PerfClientExec }: end: ----------------------------------------
> Nhi1Exec -r=uds --extra-args='--profile=log:calls' perfserver.cs > Nhi1Exec -r=uds perfclient.c
... Method call summary Total(ms) Self(ms) Calls Method name ... Method call summary Total(ms) Self(ms) Calls Method name 1556 132 155628 (wrapper native-to-managed) csmqmsgque.MqContextC:ServiceCall (intptr,intptr,intptr) 1423 303 155628 csmqmsgque.MqContextC:ServiceCall (intptr,intptr,intptr) 626 95 155653 System.Runtime.InteropServices.GCHandle:FromIntPtr (intptr) 530 244 155653 System.Runtime.InteropServices.GCHandle:op_Explicit (intptr) 258 147 155637 System.Runtime.InteropServices.GCHandle:get_Target () 143 95 155653 System.Runtime.InteropServices.GCHandle:.ctor (intptr) 138 92 155628 csmkkernel.Mk:CsRuntimeErrorGetCode (intptr) 91 91 311306 intptr:op_Explicit (intptr) 90 90 311355 intptr:op_Equality (intptr,intptr) 63 63 155637 (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle:GetTarget (int) 53 53 155653 (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle:CheckCurrentDomain (int) 50 50 155626 example.perfserver:NTHT () 46 46 155637 System.Runtime.InteropServices.GCHandle:get_IsAllocated () 45 45 155638 intptr:ToPointer () ------------------------------------------------------- SUM 1546 >=155628 ...
1556 132 155628 (wrapper native-to-managed) csmqmsgque.MqContextC:ServiceCall (intptr,intptr,intptr) 63 63 155637 (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle:GetTarget (int) 53 53 155653 (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle:CheckCurrentDomain (int)
50 50 155626 example.perfserver:NTHT ()
call: 'NHI1_HOME/performance/performance.bash' 'pr' '--bfl' '--sec' '4' '_pipe' setup=perf-release > feature=atl_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/tclsh8.5 .../perf-release/inst/sbin/atl/x86_64-suse-linux-gnu-perfserver.atl C> {x86_64-suse-linux-gnu-perfclient:pid(29939):tid(0x7f7e96ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f7e96fe8c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29939):tid(0x7f7e96ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f7e96fe8c20):statistics }: --bfl : 54978.2 [ 219913 / 4.000007 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29939):tid(0x7f7e96ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f7e96fe8c20):PerfClientExec }: end: ---------------------------------------- > feature=cc_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ .../perf-release/inst/sbin/cc/x86_64-suse-linux-gnu-perfserver C> {x86_64-suse-linux-gnu-perfclient:pid(29959):tid(0x7f431ffd0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f431ffbbc20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29959):tid(0x7f431ffd0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f431ffbbc20):statistics }: --bfl : 75352.4 [ 301410 / 4.000005 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29959):tid(0x7f431ffd0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f431ffbbc20):PerfClientExec }: end: ---------------------------------------- > feature=c_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfserver C> {x86_64-suse-linux-gnu-perfclient:pid(29976):tid(0x7f171ca9bbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f171ca86c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29976):tid(0x7f171ca9bbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f171ca86c20):statistics }: --bfl : 78987.1 [ 315949 / 4.000007 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29976):tid(0x7f171ca9bbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f171ca86c20):PerfClientExec }: end: ---------------------------------------- > feature=cs_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ /usr/bin/mono .../perf-release/inst/share/NHI1/perfserver.exe C> {x86_64-suse-linux-gnu-perfclient:pid(29994):tid(0x7f44d81a6bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f44d8191c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(29994):tid(0x7f44d81a6bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f44d8191c20):statistics }: --bfl : 52223.4 [ 208894 / 4.000006 ] C> {x86_64-suse-linux-gnu-perfclient:pid(29994):tid(0x7f44d81a6bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f44d8191c20):PerfClientExec }: end: ---------------------------------------- S> {perfserver :pid(29995):tid(0x7f5bf931f2c0):L:dlv(0):ctxId( 0):rc(2):ctx(0x5580e380d3a0):MkSelfDeleteForce_RT }: Warning: HARD RESET with: 0x5580e38120c0->self == NULL > feature=jv_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ /usr/bin/java -jar .../perf-release/inst/share/NHI1/perfserver.jar C> {x86_64-suse-linux-gnu-perfclient:pid(30014):tid(0x7ff5e5dc2bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7ff5e5dadc20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(30014):tid(0x7ff5e5dc2bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7ff5e5dadc20):statistics }: --bfl : 61637.3 [ 246550 / 4.000015 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30014):tid(0x7ff5e5dc2bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7ff5e5dadc20):PerfClientExec }: end: ---------------------------------------- > feature=py_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/python3 .../perf-release/inst/sbin/py/x86_64-suse-linux-gnu-perfserver.py C> {x86_64-suse-linux-gnu-perfclient:pid(30052):tid(0x7fcf21591bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcf2157cc20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(30052):tid(0x7fcf21591bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcf2157cc20):statistics }: --bfl : 57814.8 [ 231260 / 4.000015 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30052):tid(0x7fcf21591bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcf2157cc20):PerfClientExec }: end: ---------------------------------------- > feature=rb_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/ruby .../perf-release/inst/sbin/rb/x86_64-suse-linux-gnu-perfserver.rb C> {x86_64-suse-linux-gnu-perfclient:pid(30070):tid(0x7f5dd4e95bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f5dd4e80c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(30070):tid(0x7f5dd4e95bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f5dd4e80c20):statistics }: --bfl : 61243.5 [ 244975 / 4.000015 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30070):tid(0x7f5dd4e95bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f5dd4e80c20):PerfClientExec }: end: ---------------------------------------- > feature=tcl_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --bfl --sec 4 @ NHI1_EXT/x86_64-suse-linux-gnu/release/bin/tclsh8.6 .../perf-release/inst/sbin/tcl/x86_64-suse-linux-gnu-perfserver.tcl C> {x86_64-suse-linux-gnu-perfclient:pid(30099):tid(0x7f96165d0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f96165bbc20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(30099):tid(0x7f96165d0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f96165bbc20):statistics }: --bfl : 38639.9 [ 154560 / 4.000012 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30099):tid(0x7f96165d0bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f96165bbc20):PerfClientExec }: end: ----------------------------------------
> Nhi1Exec -r=uds --extra-args='--profile=log:calls' perfserver.cs > Nhi1Exec -r=uds perfclient.c
Method call summary Total(ms) Self(ms) Calls Method name 1830 7 7023 (wrapper native-to-managed) csmqmsgque.MqContextC:ServiceCall (intptr,intptr,intptr) 1823 15 7023 csmqmsgque.MqContextC:ServiceCall (intptr,intptr,intptr) 1755 69 7021 example.perfserver:BFLT () 704 63 70211 csmkkernel.MkBufferC:MkBufferC_ObjNew (intptr) 685 118 77240 csmkkernel.MkObjectC:atomObjNew (System.Type,System.Reflection.ConstructorInfo,intptr) 525 75 35106 csmqmsgque.MqContextC:ReadBUF () 523 75 35105 csmkkernel.MkBufferListC:IndexGet (int) 332 51 84273 System.Runtime.InteropServices.GCHandle:FromIntPtr (intptr) 285 189 323015 csmkkernel.MkObjectC:get_hdl () 280 125 84273 System.Runtime.InteropServices.GCHandle:op_Explicit (intptr) 204 73 35106 csmqmsgque.MqContextC:SendBUF (csmkkernel.MkBufferC) 166 166 561783 intptr:op_Equality (intptr,intptr) 143 53 35105 csmkkernel.MkBufferListC:AppendBUF (csmkkernel.MkBufferC) 135 77 84257 System.Runtime.InteropServices.GCHandle:get_Target () 114 68 77242 csmkkernel.Mk:CsGetSelfPtr (intptr) 100 11 7021 csmkkernel.MkBufferListC:CreateTLS (string,bool) 91 37 42126 csmqmsgque.MqContextC:ReadItemExists () 75 49 84273 System.Runtime.InteropServices.GCHandle:.ctor (intptr) 70 6 7021 csmkkernel.MkBufferListC:MkBufferListC_ObjNew (intptr) 62 41 70212 csmkkernel.MkObjectC:getOBJ (string,csmkkernel.MkObjectC) 52 52 168546 intptr:op_Explicit (intptr) 48 48 161530 csmkkernel.MkObjectC:get_mkrt () 46 46 154488 intptr:op_Inequality (intptr,intptr) 45 13 7022 csmqmsgque.MqContextC:SendRETURN () 44 35 119376 csmkkernel.MkErrorC:Check (intptr,csmkkernel.MkErrorE) 33 12 7022 csmqmsgque.MqContextC:SendSTART () 32 32 84257 (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle:GetTarget (int) 28 28 84273 (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle:CheckCurrentDomain (int) 25 25 84264 intptr:ToPointer () 25 25 84257 System.Runtime.InteropServices.GCHandle:get_IsAllocated () 20 8 7021 csmkkernel.MkBufferListC:Size () 16 16 42126 (wrapper managed-to-native) csmqmsgque.Mq:MqReadItemExists (intptr) 16 16 35105 (wrapper managed-to-native) csmkkernel.Mk:MkBufferListAppendBUF (intptr,intptr,intptr) 15 15 7022 (wrapper managed-to-native) csmqmsgque.Mq:MqSendRETURN (intptr,intptr) 15 15 35106 (wrapper managed-to-native) csmqmsgque.Mq:MqSendBUF (intptr,intptr,intptr) 15 15 35106 (wrapper managed-to-native) csmqmsgque.Mq:MqReadBUF (intptr,intptr,intptr&) 14 14 35105 (wrapper managed-to-native) csmkkernel.Mk:MkBufferListIndexGet (intptr,intptr,int,intptr&) 10 4 7053 System.Runtime.InteropServices.Marshal:StringToHGlobalAnsi (string)
call: 'NHI1_HOME/performance/performance.bash' 'pr' '--all-performance' '--sec' '4' '^(cs|jv)_pipe' setup=perf-release > feature=cs_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --all-performance --sec 4 @ /usr/bin/mono .../perf-release/inst/share/NHI1/perfserver.exe C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --send-nothing : 377713.3 [ 1511108 / 4.000674 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --send : 110658.9 [ 442651 / 4.000138 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --send-and-callback : 125465.2 [ 501947 / 4.000687 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --send-and-wait : 60181.0 [ 240725 / 4.000015 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --parent : 21.0 [ 84 / 4.006610 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --child : 2489.4 [ 9958 / 4.000088 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --bus : 32599.4 [ 130398 / 4.000017 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):statistics }: --bfl : 34422.2 [ 137689 / 4.000001 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30172):tid(0x7f920d1fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f920d1e8c20):PerfClientExec }: end: ---------------------------------------- S> {perfserver :pid(30173):tid(0x7f8f94f6f2c0):L:dlv(0):ctxId( 0):rc(2):ctx(0x56175b609080):MkSelfDeleteForce_RT }: Warning: HARD RESET with: 0x56175b60dda0->self == NULL > mv 'NHI1_BUILD/x86_64-suse-linux-gnu/debug2/performance/temp.perf.perf-release.cs_pipe' 'NHI1_HOME/performance/gen/x86_64-suse-linux-gnu/perf-release/cs_pipe.perf' > feature=jv_pipe > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --all-performance --sec 4 @ /usr/bin/java -jar .../perf-release/inst/share/NHI1/perfserver.jar C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --send-nothing : 410596.2 [ 1642623 / 4.000580 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --send : 264756.0 [ 1059216 / 4.000726 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --send-and-callback : 145140.5 [ 580669 / 4.000737 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --send-and-wait : 64445.8 [ 257784 / 4.000014 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --parent : 15.5 [ 62 / 4.000201 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --child : 2395.6 [ 9584 / 4.000714 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --bus : 33995.9 [ 135984 / 4.000010 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):statistics }: --bfl : 37542.9 [ 150177 / 4.000148 ] C> {x86_64-suse-linux-gnu-perfclient:pid(30460):tid(0x7fcac67fdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fcac67e8c20):PerfClientExec }: end: ---------------------------------------- > mv 'NHI1_BUILD/x86_64-suse-linux-gnu/debug2/performance/temp.perf.perf-release.jv_pipe' 'NHI1_HOME/performance/gen/x86_64-suse-linux-gnu/perf-release/jv_pipe.perf'
call: 'NHI1_HOME/performance/performance.bash' 'pr' '--parent' '--child' '--sec' '4' '_uds_thread' setup=perf-release > feature=atl_uds_thread > NHI1_EXT/x86_64-suse-linux-gnu/release/bin/tclsh8.5 .../perf-release/inst/sbin/atl/x86_64-suse-linux-gnu-perfserver.atl --uds --file ./socket.uds.0 --thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --parent --child --sec 4 --uds --file ./socket.uds.0 C> {x86_64-suse-linux-gnu-perfclient:pid(31697):tid(0x7f62f87cebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f62f87b9c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(31697):tid(0x7f62f87cebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f62f87b9c20):statistics }: --parent : 39.5 [ 158 / 4.000162 ] C> {x86_64-suse-linux-gnu-perfclient:pid(31697):tid(0x7f62f87cebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f62f87b9c20):statistics }: --child : 2312.1 [ 9250 / 4.000640 ] C> {x86_64-suse-linux-gnu-perfclient:pid(31697):tid(0x7f62f87cebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f62f87b9c20):PerfClientExec }: end: ---------------------------------------- > feature=cc_uds_thread > .../perf-release/inst/sbin/cc/x86_64-suse-linux-gnu-perfserver --uds --file ./socket.uds.1 --thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --parent --child --sec 4 --uds --file ./socket.uds.1 C> {x86_64-suse-linux-gnu-perfclient:pid(31893):tid(0x7f32a2ccebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f32a2cb9c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(31893):tid(0x7f32a2ccebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f32a2cb9c20):statistics }: --parent : 8472.2 [ 33890 / 4.000126 ] C> {x86_64-suse-linux-gnu-perfclient:pid(31893):tid(0x7f32a2ccebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f32a2cb9c20):statistics }: --child : 2372.9 [ 9493 / 4.000642 ] C> {x86_64-suse-linux-gnu-perfclient:pid(31893):tid(0x7f32a2ccebc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f32a2cb9c20):PerfClientExec }: end: ---------------------------------------- > feature=cs_uds_thread > /usr/bin/mono .../perf-release/inst/share/NHI1/perfserver.exe --uds --file ./socket.uds.2 --thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --parent --child --sec 4 --uds --file ./socket.uds.2 C> {x86_64-suse-linux-gnu-perfclient:pid(67019):tid(0x7f6931ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6931fe8c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(67019):tid(0x7f6931ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6931fe8c20):statistics }: --parent : 8463.0 [ 33853 / 4.000125 ] C> {x86_64-suse-linux-gnu-perfclient:pid(67019):tid(0x7f6931ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6931fe8c20):statistics }: --child : 2571.7 [ 10288 / 4.000390 ] C> {x86_64-suse-linux-gnu-perfclient:pid(67019):tid(0x7f6931ffdbc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f6931fe8c20):PerfClientExec }: end: ---------------------------------------- > feature=c_uds_thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfserver --uds --file ./socket.uds.3 --thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --parent --child --sec 4 --uds --file ./socket.uds.3 C> {x86_64-suse-linux-gnu-perfclient:pid(67059):tid(0x7fa6d9f88bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fa6d9f73c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(67059):tid(0x7fa6d9f88bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fa6d9f73c20):statistics }: --parent : 10575.7 [ 42304 / 4.000123 ] C> {x86_64-suse-linux-gnu-perfclient:pid(67059):tid(0x7fa6d9f88bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fa6d9f73c20):statistics }: --child : 2644.6 [ 10579 / 4.000181 ] C> {x86_64-suse-linux-gnu-perfclient:pid(67059):tid(0x7fa6d9f88bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fa6d9f73c20):PerfClientExec }: end: ---------------------------------------- > feature=jv_uds_thread > /usr/bin/java -jar .../perf-release/inst/share/NHI1/perfserver.jar --uds --file ./socket.uds.4 --thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --parent --child --sec 4 --uds --file ./socket.uds.4 C> {x86_64-suse-linux-gnu-perfclient:pid(36847):tid(0x7f24792e8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f24792d3c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(36847):tid(0x7f24792e8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f24792d3c20):statistics }: --parent : 10884.9 [ 43541 / 4.000115 ] C> {x86_64-suse-linux-gnu-perfclient:pid(36847):tid(0x7f24792e8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f24792d3c20):statistics }: --child : 2380.7 [ 9524 / 4.000515 ] C> {x86_64-suse-linux-gnu-perfclient:pid(36847):tid(0x7f24792e8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7f24792d3c20):PerfClientExec }: end: ---------------------------------------- > feature=tcl_uds_thread > NHI1_EXT/x86_64-suse-linux-gnu/release/bin/tclsh8.6 .../perf-release/inst/sbin/tcl/x86_64-suse-linux-gnu-perfserver.tcl --uds --file ./socket.uds.5 --thread > .../perf-release/inst/sbin/c/x86_64-suse-linux-gnu-perfclient --timeout 2 --parent --child --sec 4 --uds --file ./socket.uds.5 C> {x86_64-suse-linux-gnu-perfclient:pid(36886):tid(0x7fe493dd8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fe493dc3c20):PerfClientExec }: start ------------------------ : result [ count / sec ] C> {x86_64-suse-linux-gnu-perfclient:pid(36886):tid(0x7fe493dd8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fe493dc3c20):statistics }: --parent : 36.7 [ 147 / 4.000161 ] C> {x86_64-suse-linux-gnu-perfclient:pid(36886):tid(0x7fe493dd8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fe493dc3c20):statistics }: --child : 2328.6 [ 9315 / 4.000272 ] C> {x86_64-suse-linux-gnu-perfclient:pid(36886):tid(0x7fe493dd8bc0):L:dlv(0):ctxId( 0):rc(1):ctx(0x7fe493dc3c20):PerfClientExec }: end: ----------------------------------------
--parent
) with thread startup and the new thread-pool functionality is limited by the time for creating a new context (--child
).4 processors x 37,000 ctx/sec = ~150,000 ctx/sec
.