Jak przyspieszyć kod?

Odpowiedz Nowy wątek
2014-01-04 20:24
0

Witam.
Czy możecie mi pomóc?
Napisałem program, który wreszcie działa jak trzeba tylko przekracza czasy w dużych testach.
Kod: http://ideone.com/dyneVz
próbowałem przerobić tak: http://ideone.com/ZjHebS , ale nie odniosło to skutku bo czasy nawet nie drgnęły.
Znacie jakieś fajne sztuczki do przyspieszania.
Będę wdzięczny za pomoc.
Pozdrawiam.

Pozostało 580 znaków

2014-01-04 20:38
0

Rozumiem ze wg ciebie nie warto napisać co ten kod miał robić? o_O
Narzędzie którego powinieneś użyć to profiler. On ci powie który fragment kodu zjada najwięcej czasu i warto spróbować go przyspieszyć.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2014-01-04 20:48
0

Odszukaj to co ci powiedziałem na ten kod w poprzednim poście.
Jedną rzecz powtórzę tu: - "Będzie prawdziwe odwracanie - nie przejdziesz limitu czasowego"


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-01-04 21:10
0

Ale ja przecież tutaj też tak prawdziwie nie odwracam, bo nie przetasowuje listy tylko jak flaga jest ustawiona na true to dodaje i szukam z innej strony.
PS: Treść: http://ideone.com/oMvuPs

edytowany 1x, ostatnio: Ursinus, 2014-01-04 21:19

Pozostało 580 znaków

2014-01-05 13:30
0

Sprawdziłem program za pomocą profilera i pokazał, że clr.dll najbardziej zwalnia działanie.

Pozostało 580 znaków

2014-01-05 13:49
0
Ursinus napisał(a):

Sprawdziłem program za pomocą profilera i pokazał, że clr.dll najbardziej zwalnia działanie.

o_O to napisz zażalenie do microsoftu. Myślałem ze oczywiste jest że w outpucie profilera interesują cię głównie wyniki dla twojego kodu...
To oczywiste że jak robisz dużo operacji I/O to one zajmują sporo czasu, ale nie masz na to specjalnie wpływu. Można oczywiście zmienić jedną funkcje z biblioteki standardowej na inną, ale takie rzeczy zostawiłbym jednak na koniec i skupił się na tym co wolno działa w twoim kodzie.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2014-01-05 14:10
0

Wcale bym się nie zdziwił, jak problemem okazały się jednak operacje wyjścia.
Spróbuj użyć

 std::ios_base::sync_with_stdio(false);

, a zamiast std::endl używaj '\n'.
A tak najlepiej to zrezygnuj z iostream i przepisz ten kod pod cstdio

Pozostało 580 znaków

2014-01-05 14:28
0

Próbowałem i tak jak pisze ownadi, ale nic z tego czasy dalej takie same. Jeśli nie clr.dll to zostają getline'y w main'ie i te chyba pętle for w find_pomysl.

Pozostało 580 znaków

2014-01-05 17:03
0

Tak a propos, gdzie zwalniasz pamięć?
Może przez to działać zbyt długo.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-01-05 18:41
0

A o jaka pamięć chodzi _13_Dragon? Przy usuwaniu obiektu z listy?

Pozostało 580 znaków

2014-01-05 18:43
0

tak


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0