Dla niektórych testów potrzebuję funkcji C#, która zajmuje około 10 sekund, aby wykonać. Będzie on wywoływany ze strony ASPX, ale potrzebuję funkcji, która pochłania czas procesora na serwerze, a nie czas renderowania. Powolne zapytanie do bazy danych Northwinds zadziałałoby, lub niektóre bardzo powolne obliczenia. Jakieś pomysły?Potrzebuję powolną funkcję C#
Odpowiedz
Spróbuj obliczyć n-tą liczbę pierwszą symulować CPU intensywne prace -
public void Slow()
{
long nthPrime = FindPrimeNumber(1000); //set higher value for more time
}
public long FindPrimeNumber(int n)
{
int count=0;
long a = 2;
while(count<n)
{
long b = 2;
int prime = 1;// to check if found a prime
while(b * b <= a)
{
if(a % b == 0)
{
prime = 0;
break;
}
b++;
}
if(prime > 0)
{
count++;
}
a++;
}
return (--a);
}
Ile czasu zajmie zależy od konfiguracji sprzętowej systemu.
Wypróbuj 1000 razy, a następnie zwiększ wartość wejściową lub zmniejsz ją.
Ta funkcja symuluje intensywne działanie procesora.
Powyższa funkcja wyraźnie daje pewne rzeczywiste zadanie do wykonania zamiast pętli w pętli while. Nie wiem, dlaczego inny deweloper zabrał głos bez komentarza/wątpliwości/wyjaśnienia. Dalsza dyskusja na ten temat naprawdę pomogłaby społeczności w rozwiązaniu podobnych problemów. :) –
Twoja funkcja jest całkiem zadbana. Sprawdziłem to tutaj z pewnymi liczbami losowymi: http://primes.utm.edu/nthprime/index.php#nth – Avatar33
'int prime = 1' jest używane jako boolean. Dlaczego nie po prostu użyć 'bool'? – sharptooth
Prawdopodobnie najprostszym takiej funkcji jest to,
public void Slow()
{
var end = DateTime.Now + TimeSpan.FromSeconds(10);
while (DateTime.Now < end)
/*nothing here */ ;
}
to CPU na pojedynczej nici/CPU i trwa 10 sekund.
var endTime = DateTime.Now.AddSeconds(10);
while(true) {
if (DateTime.Now >= endTime)
break;
}
Na marginesie, normalnie nie należy tego robić.
Możesz użyć pętli "while", aby procesor był zajęty.
void CpuIntensive()
{
var startDt = DateTime.Now;
while (true)
{
if ((DateTime.Now - startDt).TotalSeconds >= 10)
break;
}
}
Ta metoda pozostanie w pętli while przez 10 sekund. Ponadto, jeśli uruchomisz tę metodę w wielu wątkach, możesz uczynić wszystkie rdzenie procesora zajęte.
Dla maxing wielu rdzeni I dostosowane @ odpowiedź MOTTI trochę i mam następujące:
Enumerable
.Range(1, Environment.ProcessorCount) // replace with lesser number if 100% usage is not what you are after.
.AsParallel()
.Select(i => {
var end = DateTime.Now + TimeSpan.FromSeconds(10);
while (DateTime.Now < end)
/*nothing here */ ;
return i;
})
.ToList(); // ToList makes the query execute.
Wystarczy użyć
Thread.Sleep(number of milliseconds here);
Trzeba będzie dodać using System.Threading;
To nie pochłonie dużo * dowolnego * czasu procesora. – Servy
Moglibyście po prostu sprobować obliczać silnię o naprawdę dużej liczbie. – semicolon
Gdybyście zamiast tego zaproponowali * to * jako odpowiedź, wówczas wasza odpowiedź nie byłaby całkowicie błędna. Nie chcesz tego robić. – Servy
- 1. "IsAsync" nie ma wpływu na powolną właściwość?
- 2. Jak mogę symulować powolną publikację Meteor?
- 3. Jak osiągnąć tę funkcję w C/C++
- 4. Kiedy potrzebuję anonimowej klasy w C++?
- 5. Jak mogę wywołać funkcję Celu C?
- 6. jak wywołać funkcję managed (C#) z C++?
- 7. Jak wywołać funkcję DLL C++ z C#
- 8. C++: Implementuj niestandardową funkcję główną
- 9. Potrzebuję zrobić histogram odcinek
- 10. Potrzebuję array_keys_recursive()
- 11. Jak wykonać funkcję porównania w C#
- 12. przepisywanie powolne funkcję R C++ i RCPP
- 13. Dlaczego potrzebuję interfejsu?
- 14. Potrzebuję utworzyć bezpieczną dla wątków zmienną statyczną w C# .Net
- 15. Potrzebuję szybkiego samouczka C# dla krótkoterminowych programistów non -Net
- 16. Potrzebuję biblioteki C++ do dopasowania krzywych do punktów danych
- 17. Potrzebuję uzyskać ciąg po "słowo" w ciągu C#
- 18. Safe Lua wywołuje funkcję zarejestrowaną w C++
- 19. jak wywołać operatora jako funkcję w C++
- 20. Jak uruchomić funkcję wyjścia w C++
- 21. Przepisywanie C++ makro jako funkcję itp
- 22. C# - LINQ Select() wywołuje funkcję dwa razy
- 23. Jak utworzyć funkcję szablonu w klasie? (C++)
- 24. można zdefiniować funkcję wewnątrz struktury C?
- 25. Jak zaimplementować funkcję "private/restricted" w C?
- 26. Jak zaimplementować funkcję make_unique w C++ 11?
- 27. Co to znaczy "zatruć funkcję" w C++?
- 28. C++ 11 std :: ustaw funkcję porównania lambda
- 29. Czy C++ ma darmową funkcję "size (object)"?
- 30. Szablon C++ określa funkcję zwracanego typu
Czy trzeba standard funkcjonować z jakiejś biblioteki lub po prostu nowej? Ponieważ pętla może zawsze zdziałać ... –
Coś z istniejącej biblioteki byłoby świetne. Ale Thread.Sleep (10000) nie będzie działać. – Sisiutl
Jestem nieco zdezorientowany w tej linii: 'nie renderowanie czasu'. Czy chcesz, aby serwer działał w 100%, a aplikacja nie jest zablokowana w kodzie? – Silvermind