ANN: SQLite 3.6.16.C#

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 - 3 | Next >

ANN: SQLite 3.6.16.C#

by Noah Hart :: Rate this Message:

| View Threaded | Show Only this Message

I am pleased to announce that the C# port is done to the point where others can look at it.

The project is located at http://code.google.com/p/sqlitecs

Enjoy,

Noah Hart

Re: ANN: SQLite 3.6.16.C#

by Kosenko Max :: Rate this Message:

| View Threaded | Show Only this Message

Wow, that's impressive.

And very interesting that you've gained 3x-5x performance gain.
Don't make this project educational only. I'm sure you'll find additional contributors. Just recently Miguel de Icaza was asking for line by line port of SQLite to C#.

Great achievement that all tests are passing now.

Max.

Noah Hart wrote:
I am pleased to announce that the C# port is done to the point where others can look at it.

The project is located at http://code.google.com/p/sqlitecs

Enjoy,

Noah Hart
Best Regards.
Max Kosenko.

Re: ANN: SQLite 3.6.16.C#

by Kosenko Max :: Rate this Message:

| View Threaded | Show Only this Message

Seems like I've misunderstood your performance results. And they are 3-5times slower than original...
Best Regards.
Max Kosenko.

Re: ANN: SQLite 3.6.16.C#

by Cory Nelson :: Rate this Message:

| View Threaded | Show Only this Message

On Sat, Aug 1, 2009 at 4:21 AM, Kosenko Max<kosenko.max@...> wrote:
>
> Seems like I've misunderstood your performance results. And they are 3-5times
> slower than original...
>

This could be for a number of reasons.  For one, it uses p/invoke for
a number of things, which can be pretty slow and is not portable.
Another, it is basically a direct port of the C code -- it is using
goto all over the place, which probably hampers optimization as
opposed to exceptions.

--
Cory Nelson
http://int64.org
_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Fred Williams :: Rate this Message:

| View Threaded | Show Only this Message


Hummm... Guess there is a reason there are no implementations of C# external
to the Mickeysoft world :-)

Guess if I had a lot of time to kill I could port it to Delphi...

BTW, what's the memory footprint?

Fred

-----Original Message-----
From: sqlite-users-bounces@...
[mailto:sqlite-users-bounces@...]On Behalf Of Kosenko Max
Sent: Saturday, August 01, 2009 6:22 AM
To: sqlite-users@...
Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#



Seems like I've misunderstood your performance results. And they are
3-5times
slower than original...

-----
Best Regards.
Max Kosenko.
--
View this message in context:
http://www.nabble.com/ANN%3A--SQLite-3.6.16.C--tp24764742p24768252.html
Sent from the SQLite mailing list archive at Nabble.com.

_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Kosenko Max :: Rate this Message:

| View Threaded | Show Only this Message

Only 10 DllImport (files and performance), most can be moved to managed version.
goto isn't something slow with C# - so it can't be a bottleneck.
But it would be interesting to study this with profiler and see what is the real reason.
I believe it shouldn't be that different in performance.

Cory Nelson wrote:
On Sat, Aug 1, 2009 at 4:21 AM, Kosenko Max<kosenko.max@vyzo.com> wrote:
>
> Seems like I've misunderstood your performance results. And they are 3-5times
> slower than original...
>

This could be for a number of reasons.  For one, it uses p/invoke for
a number of things, which can be pretty slow and is not portable.
Another, it is basically a direct port of the C code -- it is using
goto all over the place, which probably hampers optimization as
opposed to exceptions.

--
Cory Nelson
http://int64.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Best Regards.
Max Kosenko.

Re: ANN: SQLite 3.6.16.C#

by Kosenko Max :: Rate this Message:

| View Threaded | Show Only this Message

Fred Williams wrote:
Hummm... Guess there is a reason there are no implementations of C# external to the Mickeysoft world :-)
One of the reason is true multiplatform support with Mono for managed world.
Another one is Silverlight DB.


Best Regards.
Max Kosenko.

Re: ANN: SQLite 3.6.16.C#

by Yves Goergen :: Rate this Message:

| View Threaded | Show Only this Message

On 01.08.2009 02:14 CE(S)T, Noah Hart wrote:
> I am pleased to announce that the C# port is done to the point where others
> can look at it.
>
> The project is located at http://code.google.com/p/sqlitecs

Excuse me, but what's the difference of this to SQLite ADO.NET at
http://sqlite.phxsoftware.com/ ?

--
Yves Goergen "LonelyPixel" <nospam.list@...>
Visit my web laboratory at http://beta.unclassified.de
_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Noah Hart :: Rate this Message:

| View Threaded | Show Only this Message

Cory, There was no attempt at optimization in this initial port.  SQLite does a lot of char/byte/string manipulation as well as and passing parameters by address in the middle of an array.  But I ended up having to do a lot of byte buffer copying.  MY guess is that is where most of the time is spent.

Regards,

Noah

On Sat, Aug 1, 2009 at 4:21 AM, Kosenko Max<kosenko.max@vyzo.com> wrote:
>
> Seems like I've misunderstood your performance results. And they are 3-5times
> slower than original...
>

This could be for a number of reasons.  For one, it uses p/invoke for
a number of things, which can be pretty slow and is not portable.
Another, it is basically a direct port of the C code -- it is using
goto all over the place, which probably hampers optimization as
opposed to exceptions.

--
Cory Nelson
http://int64.org

Re: ANN: SQLite 3.6.16.C#

by Noah Hart :: Rate this Message:

| View Threaded | Show Only this Message

Yes, but still decent speed

All Results are in Rows per Second

Test SQLite3C# SQLite3
Inserts 300K 1300K
Selects 1500K 8450K
Updates 60K 300K
Deletes 250K 700K

Noah
Kosenko Max wrote:
Seems like I've misunderstood your performance results. And they are 3-5times slower than original...

Re: ANN: SQLite 3.6.16.C#

by Noah Hart :: Rate this Message:

| View Threaded | Show Only this Message

The compiled version of the SQLite3.exe is 528KB vs 506KB for the official release

I haven't checked the footprint while it is running.  That would be depend on what it is doing ...

Noah
Fred Williams wrote:
Hummm... Guess there is a reason there are no implementations of C# external
to the Mickeysoft world :-)

Guess if I had a lot of time to kill I could port it to Delphi...

BTW, what's the memory footprint?

Fred

-----Original Message-----
From: sqlite-users-bounces@sqlite.org
[mailto:sqlite-users-bounces@sqlite.org]On Behalf Of Kosenko Max
Sent: Saturday, August 01, 2009 6:22 AM
To: sqlite-users@sqlite.org
Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#



Seems like I've misunderstood your performance results. And they are
3-5times
slower than original...

-----
Best Regards.
Max Kosenko.
--
View this message in context:
http://www.nabble.com/ANN%3A--SQLite-3.6.16.C--tp24764742p24768252.html
Sent from the SQLite mailing list archive at Nabble.com.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Noah Hart :: Rate this Message:

| View Threaded | Show Only this Message

Max, I missed posting the remaining errors

Current results ...
9 errors out of 30054 tests

Still skipping about 9 additional tests

Noah

Wow, that's impressive.

And very interesting that you've gained 3x-5x performance gain.
Don't make this project educational only. I'm sure you'll find additional contributors. Just recently Miguel de Icaza was asking for line by line port of SQLite to C#.

Great achievement that all tests are passing now.

Max.

Noah Hart wrote:
I am pleased to announce that the C# port is done to the point where others can look at it.

The project is located at http://code.google.com/p/sqlitecs

Enjoy,

Noah Hart


Re: ANN: SQLite 3.6.16.C#

by Noah Hart :: Rate this Message:

| View Threaded | Show Only this Message

This is not a driver, dll, or wrapper.  This is a port of the underlying SQLite software.

Noah
Yves Goergen wrote:
On 01.08.2009 02:14 CE(S)T, Noah Hart wrote:
> I am pleased to announce that the C# port is done to the point where others
> can look at it.
>
> The project is located at http://code.google.com/p/sqlitecs

Excuse me, but what's the difference of this to SQLite ADO.NET at
http://sqlite.phxsoftware.com/ ?

--
Yves Goergen "LonelyPixel" <nospam.list@unclassified.de>
Visit my web laboratory at http://beta.unclassified.de
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Jim Showalter-4 :: Rate this Message:

| View Threaded | Show Only this Message

Could we not disparage different OSs and languages?

A fair comparison of performance isn't between a C and C#
implementation of SQLite, but between a C# and Java implementation of
SQLite. Both C# and Java are managed languages that run atop a VM that
runs atop an OS. C is down on the metal. I would expect the C version
to be faster.

I don't know the background of why this programmer did a port directly
to C# instead of binding C# to the existing C library, but I assume he
had his reasons.

----- Original Message -----
From: "Fred Williams" <f.williams@...>
To: "General Discussion of SQLite Database" <sqlite-users@...>
Sent: Saturday, August 01, 2009 6:08 AM
Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#


>
> Hummm... Guess there is a reason there are no implementations of C#
> external
> to the Mickeysoft world :-)
>
> Guess if I had a lot of time to kill I could port it to Delphi...
>
> BTW, what's the memory footprint?
>
> Fred
>
> -----Original Message-----
> From: sqlite-users-bounces@...
> [mailto:sqlite-users-bounces@...]On Behalf Of Kosenko Max
> Sent: Saturday, August 01, 2009 6:22 AM
> To: sqlite-users@...
> Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#
>
>
>
> Seems like I've misunderstood your performance results. And they are
> 3-5times
> slower than original...
>
> -----
> Best Regards.
> Max Kosenko.
> --
> View this message in context:
> http://www.nabble.com/ANN%3A--SQLite-3.6.16.C--tp24764742p24768252.html
> Sent from the SQLite mailing list archive at Nabble.com.
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@...
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@...
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users 

_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Puneet Kishor-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Sat, Aug 1, 2009 at 1:05 PM, Jim Showalter<jim@...> wrote:
> I don't know the background of why this programmer did a port directly
> to C# instead of binding C# to the existing C library, but I assume he
> had his reasons.

He says very clearly on the code website, he did so to learn C#. As I
wrote in my comment there, I admire his perseverance, and that he
managed to complete the project single-handedly.

--
Puneet Kishor
_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Fred Williams :: Rate this Message:

| View Threaded | Show Only this Message

No I'm not proud of what a lot of OS providers produce.  Microsoft in
particular.  Sun's Java is becoming such a resource pig, I won't mess with
it either.

SQLite was and has always been designed to be extremely cross platform
portable, bare bones in both footprint and implementation.  It is, and
should remain so.  If someone wants to take the open source and implement it
in something like C# or Java, I think Dr. Hipp should contact them and
politely ask them to change the name, because the end result will be neither
that portable (C#) or efficient (Java.) MHO.

Lucky for most, SQLite has not suffered the extreme feature creep that is
inherent in most software projects.  And it appears a constant battle to
keep it true to its roots.  If I want a multi-user, full featured database I
have a multitude of very successful products to pick from.  I won't keep
asking the SQLite developers for just one more feature.  I tend to use a
product for which it was designed.  I'm not the kind of guy that just
because I own a hammer everything in the world looks like a nail.  I guess
that is why I can write in more than 10 programming languages.

A place for everything, and every thing in its place, so to speak.

Fred

-----Original Message-----
From: sqlite-users-bounces@...
[mailto:sqlite-users-bounces@...]On Behalf Of Jim Showalter
Sent: Saturday, August 01, 2009 1:06 PM
To: General Discussion of SQLite Database
Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#


Could we not disparage different OSs and languages?

A fair comparison of performance isn't between a C and C#
implementation of SQLite, but between a C# and Java implementation of
SQLite. Both C# and Java are managed languages that run atop a VM that
runs atop an OS. C is down on the metal. I would expect the C version
to be faster.

I don't know the background of why this programmer did a port directly
to C# instead of binding C# to the existing C library, but I assume he
had his reasons.

----- Original Message -----
From: "Fred Williams" <f.williams@...>
To: "General Discussion of SQLite Database" <sqlite-users@...>
Sent: Saturday, August 01, 2009 6:08 AM
Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#


>
> Hummm... Guess there is a reason there are no implementations of C#
> external
> to the Mickeysoft world :-)
>
> Guess if I had a lot of time to kill I could port it to Delphi...
>
> BTW, what's the memory footprint?
>
> Fred
>
> -----Original Message-----
> From: sqlite-users-bounces@...
> [mailto:sqlite-users-bounces@...]On Behalf Of Kosenko Max
> Sent: Saturday, August 01, 2009 6:22 AM
> To: sqlite-users@...
> Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#
>
>
>
> Seems like I've misunderstood your performance results. And they are
> 3-5times
> slower than original...
>
> -----
> Best Regards.
> Max Kosenko.
> --
> View this message in context:
> http://www.nabble.com/ANN%3A--SQLite-3.6.16.C--tp24764742p24768252.html
> Sent from the SQLite mailing list archive at Nabble.com.
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@...
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@...
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Simon Slavin-2 :: Rate this Message:

| View Threaded | Show Only this Message


On 1 Aug 2009, at 11:07pm, Fred Williams wrote:

> SQLite was and has always been designed to be extremely cross platform
> portable, bare bones in both footprint and implementation.  It is, and
> should remain so.  If someone wants to take the open source and  
> implement it
> in something like C# or Java, I think Dr. Hipp should contact them and
> politely ask them to change the name, because the end result will be  
> neither
> that portable (C#) or efficient (Java.) MHO.

I don't have a problem with a port to other languages.  In fact  
porting things to other platforms and other languages is a great way  
to discover bugs in the original: first you have to actually read the  
code, and second you find things that work only by coincidence.  But  
porting is like making babies: the enthusiasm that goes into the  
original work is not always reflected in maintenance.  And I hope that  
Dr. Hipp is going to add some features or fix some bugs in the C  
version of SQLite.  At that point the port is either going to be  
incompatible, or require maintenance from someone who understands it.

So I would want to be sure that's going to happen before basing any  
big project on the port.

Simon.
_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Florian Weimer :: Rate this Message:

| View Threaded | Show Only this Message

* Noah Hart:

> I am pleased to announce that the C# port is done to the point where others
> can look at it.

Congratulations!

(Is there something similar for Java, not using JNI nor NestedVM? 8-)
_______________________________________________
sqlite-users mailing list
sqlite-users@...
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Re: ANN: SQLite 3.6.16.C#

by Kosenko Max :: Rate this Message:

| View Threaded | Show Only this Message

9/30054 means 99.97% tests are working.
That's a great achievement anyway.
Performance problems can be profiled and optimized simpler than with native version.

That isn't a nature of managed code to be slow. i.e. Perst DB which is managed from scratch is same speed or faster than SQLite (especially on embedded platforms). That's not because of C#, but because of different architecture, but still it shows that there are plenty of room. So don't froze this project please - there is a high demand on it exist.

Max


Max, I missed posting the remaining errors

Current results ...
9 errors out of 30054 tests

Still skipping about 9 additional tests

Noah
Kosenko Max wrote:
Wow, that's impressive.

And very interesting that you've gained 3x-5x performance gain.
Don't make this project educational only. I'm sure you'll find additional contributors. Just recently Miguel de Icaza was asking for line by line port of SQLite to C#.

Great achievement that all tests are passing now.

Max.

Noah Hart wrote:
I am pleased to announce that the C# port is done to the point where others can look at it.

The project is located at http://code.google.com/p/sqlitecs

Enjoy,

Noah Hart
Best Regards.
Max Kosenko.

Re: ANN: SQLite 3.6.16.C#

by Kosenko Max :: Rate this Message:

| View Threaded | Show Only this Message

I don't know why you have decided that C# or Java isn't competitive to native compiled code.
After JIT there is no VM between Java/.NET and OS.

While C has better compiler than C# it still don't have JIT engine that can optimize your code for specific hardware you're running on right now. Or it can recompile code based on statistics. Options unavailable to native code. And after all having managed implementation gives better control on code, simpler code and so on. So in reality there should be strong reason for NOT using managed implementations for whatever. But it's only rising now...

Jim Showalter-4 wrote:
Could we not disparage different OSs and languages?

A fair comparison of performance isn't between a C and C#
implementation of SQLite, but between a C# and Java implementation of
SQLite. Both C# and Java are managed languages that run atop a VM that
runs atop an OS. C is down on the metal. I would expect the C version
to be faster.

I don't know the background of why this programmer did a port directly
to C# instead of binding C# to the existing C library, but I assume he
had his reasons.

----- Original Message -----
From: "Fred Williams" <f.williams@verizon.net>
To: "General Discussion of SQLite Database" <sqlite-users@sqlite.org>
Sent: Saturday, August 01, 2009 6:08 AM
Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#


>
> Hummm... Guess there is a reason there are no implementations of C#
> external
> to the Mickeysoft world :-)
>
> Guess if I had a lot of time to kill I could port it to Delphi...
>
> BTW, what's the memory footprint?
>
> Fred
>
> -----Original Message-----
> From: sqlite-users-bounces@sqlite.org
> [mailto:sqlite-users-bounces@sqlite.org]On Behalf Of Kosenko Max
> Sent: Saturday, August 01, 2009 6:22 AM
> To: sqlite-users@sqlite.org
> Subject: Re: [sqlite] ANN: SQLite 3.6.16.C#
>
>
>
> Seems like I've misunderstood your performance results. And they are
> 3-5times
> slower than original...
>
> -----
> Best Regards.
> Max Kosenko.
> --
> View this message in context:
> http://www.nabble.com/ANN%3A--SQLite-3.6.16.C--tp24764742p24768252.html
> Sent from the SQLite mailing list archive at Nabble.com.
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users 

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Best Regards.
Max Kosenko.
< Prev | 1 - 2 - 3 | Next >