2012-08-15 10 views
7

Jak często należy poddawać recyklingowi pulę aplikacji?Jak często należy poddawać recyklingowi pulę aplikacji?

Ktoś powiedział mi, że powinienem poddawać recyklingowi pulę aplikacji co 24 godziny?

Dlaczego muszę poddać recyklingowi pulę aplikacji?

Jakie korzyści możemy uzyskać?

+0

Jeśli istnieje jedna prawidłowa odpowiedź, czy nie uważasz, że to zostanie wbudowane, zamiast być czymś, co możesz skonfigurować? Wartość * domyślna *, przy okazji, wynosi 29 godzin. –

+0

Szczerze mówiąc, jeśli napiszę ciasną aplikację, w której zarządzam zasobami, aw niektórych przypadkach nawet lubię przechowywać trwałe dane w puli aplikacji w klasie statycznej (najlepiej dla danych tylko do odczytu i potrzebuję podwójnej blokady w czasie ładowania), więc w rozszerzeniu na to pytanie często się zastanawiałem ... czy w ogóle muszę poddać recyklingowi pulę aplikacji? –

Odpowiedz

7

Chyba że istnieje jakiś nadrzędny powód, sugerowałbym, aby nie mieć żadnego opartego na TIME recyklingu (tj. Bez harmonogramu takiego jak o 3AM każdego dnia, ani cyklicznego co 29 godzinnego recyklingu). Twierdziłbym, że jest to raczej wstrzymanie, gdy sytuacja była mniej stabilna (pomyśl o odtworzeniu lżejszej wersji konieczności rutynowego restartowania serwerów).

Aby zabezpieczyć się przed wyciekami pamięci i tym podobne, można ustawić limity pamięci wirtualnej i używanej, aby wymusić recykling, gdy proces wymknie się spod kontroli. Otrzymujesz całą wartość, która zapewnia, że ​​nie zużywasz zbyt dużo pamięci, bez niepotrzebnego recyklingu.

Są absolutnie czasochłonne, ale najczęściej dotyczą one zmian (np. W przypadku upuszczania nowych plików DLL lub wprowadzania pewnych zmian w konfiguracji). Jeśli chodzi o zwykły recykling typu "regularnej konserwacji", z prawidłowo napisanym i przetestowanym kodem, nie powinno to być konieczne. (Dodatkowe zastrzeżenie, odpowiednie monitorowanie również pomaga, ponieważ przypuszczam, że proces przetwarzania może się również skończyć z procesorem, a to nie ma limitu na odzyskiwanie)

Korzyści z recyklingu to to, że "zaczynasz świecić". Oczyścisz swoją pamięć i ponownie załadujesz swoje biblioteki DLL. Każdy długotrwały wątek (read: hung thread, który nic nie robi) zostanie usunięty. Wadą jest to, że trzeba trochę czasu, aby załadować rzeczy z powrotem do pamięci (chociaż nowe rozgrzewki wiele z tego dbają).

Powiązane problemy