|
Boost Users : |
Subject: Re: [Boost-users] Backend of multi_index container
From: Ernest Zaslavsky (ernest.zaslavsky_at_[hidden])
Date: 2016-06-27 02:05:03
You can do two step load, once into temporary container and then inserting into MIC and measure only the second part, it is inefficient but I guess you can afford it for test purposes.
I guess std::chrono is ok in case std::chrono::high_resolution_clock is precise enough on your system ( it is implementation specific). The other approach is to take std::chrono::high_resolution_clock::now before and after you call to MIC âinsertâ and then calculate and sum each delta, again it will work in case your clock resolution is sufficient
From: Boost-users [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Anaswara Nair
Sent: Monday, June 27, 2016 8:51 AM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] Backend of multi_index container
The execution time includes the time to read the data from the file and insert it to the container. Also I am using std::chrono to calculate the time. Is there some other way by which I can pause the calculation when data is read from the file and resume it again only when data is inserted to the container? How is the performance of the container measured?
On Sun, Jun 26, 2016 at 5:50 PM, Ernest Zaslavsky <ernest.zaslavsky_at_[hidden]<mailto:ernest.zaslavsky_at_[hidden]>> wrote:
With âO3? It is very slow for releaseâ¦
In any case, if the initial insert time is crucial for you, you can model similar to MIC interface using preallocated vectors, holding indices as tuples in sorted vectors, if O(logn) search time is suitable for you. This is what I did in a while agoâ¦
From: Boost-users [mailto:boost-users-bounces_at_[hidden]<mailto:boost-users-bounces_at_[hidden]>] On Behalf Of Anaswara Nair
Sent: Sunday, June 26, 2016 3:03 PM
To: boost-users_at_[hidden]<mailto:boost-users_at_[hidden]>
Subject: Re: [Boost-users] Backend of multi_index container
I compiled in Release mode. And yes.. I have to insert once and should be able to use its index to retrieve the data.
On Sun, Jun 26, 2016 at 5:12 PM, Ernest Zaslavsky <ernest.zaslavsky_at_[hidden]<mailto:ernest.zaslavsky_at_[hidden]>> wrote:
Hm⦠650 ms is way too much for 100k container. AFAIR I was inserting 500k in one second, 5M in 3 secondsâ¦
Are you sure you are NOT running in debug configuration.
Could you elaborate what is your use case? Do you have to insert once and then just use its index?
From: Boost-users [mailto:boost-users-bounces_at_[hidden]<mailto:boost-users-bounces_at_[hidden]>] On Behalf Of Anaswara Nair
Sent: Friday, June 24, 2016 3:53 PM
To: boost-users_at_[hidden]<mailto:boost-users_at_[hidden]>
Subject: Re: [Boost-users] Backend of multi_index container
I had a file containing about 0.1 million records, each record containing seven fields(two strings and five 64 bit integers). I indexed(ordered_unique) one of the integer fields and tried inserting the records to a multiindex container and it took only about 650 milliseconds. Inserting the same to a SQLite DB took almost 1 second. So, will inserting a really really huge amount of records will degrade the performance?
On Thu, Jun 23, 2016 at 10:32 AM, Ernest Zaslavsky <ernest.zaslavsky_at_[hidden]<mailto:ernest.zaslavsky_at_[hidden]>> wrote:
IIRC it uses red-black tree
I had horrific experience with insert times, it just took too much time. Actually I had exactly your case, insert once and then just run on multiple indexes. Sounds like, if you donât mind the load time, go for it.
From: Boost-users [mailto:boost-users-bounces_at_[hidden]<mailto:boost-users-bounces_at_[hidden]>] On Behalf Of Anaswara Nair
Sent: Wednesday, June 22, 2016 4:13 PM
To: boost-users_at_[hidden]<mailto:boost-users_at_[hidden]>
Subject: [Boost-users] Backend of multi_index container
Hi, I was going through the documentation of boost::multi_index container. I would like to know what is in its back end. Something like B-Tree,B+tree,etc.? Actually I want to create a database(in the sense it contains millions of records), but need not be reusable at a later period of time. i.e, I am looking only for run-time persistent data. Once data is inserted to this, it will not be modified. And there will be a unique id for each record. I would also like to know whether multi_index is the best suited one for the implementation of my so called database.. Thankyou
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]<mailto:Boost-users_at_[hidden]>
http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]<mailto:Boost-users_at_[hidden]>
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
WITH REGARDS,
ANASWARA
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]<mailto:Boost-users_at_[hidden]>
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
WITH REGARDS,
ANASWARA
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net