![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Co prawda aplikacja jest napisana w C (z wykorzystaniem MySQL API) a nie w PHP, ale problem tkwi po stronie MySQL-a stad pisze tutaj a nie na forum C/C++. Program ktory napisalem, ma wrzucac informacje z przeparsowanego pliku tekstowego do bazy danych, problem polega tylko na tym, ze tych danych jest sporo (stad wybralem C a nie PHP). Sprobowalem wrzucic dane tylko z 1 pliku co daje ~ 3487 zapytan do bazy danych i program wykonywal sie przez prawie 3 minuty! Co przy ponad 500 plikach daje wiecznosc (IMG:style_emoticons/default/wink.gif) . No ale pomyslalem, ze moze jest to wina braku optymalizacji programu, wiec postanowilem napisac cos takiego:
gdzie tabela to:
Kod pisalem z pamieci (nie mam teraz dostepu do zrodla programu) wiec moga gdzies byc byki, ale chcialem przekazac tylko sens. Okazalo sie, ze przedstawiony wyzej kod tez wykonuje sie w granicach 3 minut ;/. Mieliscie kiedys podobna sytuacje? Dlaczego tak sie dzieje? Jak to naprawic? Dziekuje za wszelka pomoc, pozdrawiam MD |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Możliwe, że spowalniaczem są:
a) operacje odczytu plików z dysku, (IMG:style_emoticons/default/cool.gif) ciągłe nawiązywanie nowych połączeń zamiast używanie jednego przez cały czas skryptu, c) niezbyt wydajne parsowanie zawartości. Trudno cokolwiek powiedzieć bez jakiejś faktycznej próbki kodu i tego jak wygląda obróbka plików do formy zapytań. Pamiętaj, że operacje I/O sa zawsze wąskim gardłem i to one głównie spowalniają aplikację. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 11:51 |