roserek Temat założony przez niniejszego użytkownika |
[C++] Dobry sposób na przechowywanie danych w pamięci » 2013-08-19 10:30:39 Witam, czy ktoś z was pisał kiedyś deamona w C++ ?? Potrzebuję napisać jakiś "podprogram" który będzie trzymał w pamięci operacyjnej dane i kiedy będę chciał je uaktualnić to będzie to robił a kiedy będę ciał dostać te dane do programu głównego to będzie je udostępniał. Zależy mi na tym żeby to działo niezależnie od konsoli, tzn program główny będzie uruchamiany i za każdym razem musi mieć dostęp do danych, po zakończeniu programu dane dalej powinny być w pamięci i czekać. Chodzi o przyśpieszenie programu. |
|
jankowalski25 |
» 2013-08-19 10:43:52 Twoim głównym celem jest zarządzanie danymi, więc skorzystaj z bazy danych. Jeśli jeszcze nie rozwiązałeś problemu, to nie przejmuj się szybkością aplikacji. Optymalizacje należy wykonywać po napisaniu programu, a nie przed jego ukończeniem. |
|
roserek Temat założony przez niniejszego użytkownika |
» 2013-08-19 10:52:47 Program jest już napisany :) Teraz szukam jakiegoś rozwiązania aby go przyśpieszyć. Używam bazy danych MySQL, i właśnie tutaj jest problem, bo zbyt dużo czasu tracę na wczytanie danych z bazy ( za każdym uruchomieniem programu około 2 minuty , a będzie jeszcze dużo więcej danych więc ten czas wzrośnie ). |
|
jankowalski25 |
» 2013-08-19 10:58:32 Myślę, że to nie jest wina bazy danych, tylko programu. Użyj profilera, żeby sprawdzić, co zajmuje zbyt wiele czasu. |
|
roserek Temat założony przez niniejszego użytkownika |
» 2013-08-19 11:05:47 Tzn. może nie tyle baza danych zajmuje tyle czasu ( chociaż są naprawdę duże pliki tekstowe przechowywane ), co późniejsze uruchomienie funkcji która musi przemielić te dane z bazy ( FileStorage z biblioteki opencv ). Chodzi mi teraz o to aby tej funkcji nie uruchamiać za każdym uruchomieniem programu, tylko aby to co ta funkcja zwraca było przechowywane w pamięci i w każdej chwili miałbym do tego dostęp, oraz w każdej chwili mógłym uruchomić przeładowanie danych na nowo ( jeśli coś dodam więcej do bazy ) |
|
jankowalski25 |
» 2013-08-19 11:16:58 1. Utwórz nową bazę. 2. Wstaw do niej te dane, które chcesz szybko odczytywać (z poziomu programu, dynamicznie). 3. Odczytuj je z programu.
Jeśli dane zależne od głównej bazy się zmienią, aktualizujesz nową bazę i odczytujesz dane. |
|
roserek Temat założony przez niniejszego użytkownika |
» 2013-08-19 11:24:50 To mi nic nie da,za każdym razem potrzebuję wszystkie dane z bazy danych. Są to wektory własne, wartości własne itd. |
|
jankowalski25 |
» 2013-08-19 15:36:15 Możesz umieścić nowe dane w tej samej bazie, tylko w innym miejscu, na przykład w nowych tabelach. |
|
« 1 » 2 |