>  > And if you think benchmarks are not
>> > important  look at what Linux benchmarks for linux style apps did to
>> > MicroKernels and the not so worthy contenders ( Minix , Herd and Mach)
>>
>> If it was the benchmarks that did it, the benchmarks (along with the
>> reliability benefits) would have been able to win people back.
>> Really, it was about hardware support (which is still *the* problem in
>> esoteric-os space).
>
>
> Umm. I think Jochen and I proved otherwise pretty convinclngly. The issues
> are more subtle than this. But it's a discussion for the Coyotos list, not
> the BitC list.
>
>
I bet the vast majority of non research level Linux  professionals to this
day think Micro Kernel = bad which made selling a  new micro kernel OS very
hard .  The point is not about micro kernels vs macro ( which does belongs
in the other thread) the point is the importance of ill conceived
benchmarks which create a first impression that is very hard to overcome
and messages like the product is not ready or  the linux monolithic  app is
not how you write apps on a micro kernel were lost .  It is worth noting it
was the linux people who wrote most of the benchmarks , if Mach/Minix/Herd
had and optomized a decent set  before the linux fans than we would have a
very different OS world now.  When you host on the CLR expect C++ , Java ,
Rust and C# devs to write benchmarks comparing  BitC.

A great example is C++ benchmarks , that dont use DLLs but for real life
apps the same algorithm is used in a DLL and with virt calls you get much
worse performance ( which is not the case with JIT) .

For BitC to be signifcantly useful over C++ /C# / Java / Rust  id like to
see the following bench marks regardless of run time.

                                                      Purpose
fair lines  of code                       Language brevity , type system .
A bad measure but not many objective ways to measure it..
IO / string formatting                 C#/Java string and/ or non fixed
array makes this slow.
Memory array read /write on heap , stack and in region     GC Card  table
and run length impact .
Parse Web document and create DOM      Common operation but C#/Java both
are quite slow at this compared to C . Also test GC pauses and memory
overhead.
Calling busines logic 3 obj deep  in DLL with virtcalls    Virtcalls and
DLLs are common in real programing but absent  in C++/ C benchmarks .
Send and Recieve deserialized Json http packets   via custom tcp server
Real middle tier program  test , also tests GC/ regions and memory .
As above but store last 4 Gb of messages , test 64 bit  , memory usage and
GC pauses
Send messages in proc and via tcp and test latency.   Test unmanged /
driver copy overhead , frequent trading are looking for very low latency .
XML or Reg expression parser  , the fastest C is about double the speed of
the fastest Java .
Some modern hi perf algoritms           Many high performance algorithms
are integer SIMD , C# and Java cant do it .
fake 3D render                           Test  GC pauses and  memory
improvements.

I think the product with even just 5 of the features discussed  earlier can
do well on this list even on the CLR and hence be compellling for many lib
authors.

Ben
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to