Nigdy nie widziałem samouczka ani wykładu, który pokazywał klasyczną pętlę for-in z kolejnością po-inkrementacji.pre-increment vs post-increment - szybkość pętli
for (int i=0; i<array.length; i++) {}
Jeśli użyjesz POST-increment, zmienna "i" zostanie zapisana w pamięci podręcznej, zanim zostanie zwiększona! Ale to nie ma sensu, ponieważ polecenie kończy się bezpośrednio.
Moim zdaniem, to więcej sensu:
for (int i=0; i<array.length; ++i) {}
Jeśli nie rozumiała aż do teraz, idę trochę dalej (sry za mój angielski):
W pierwszej pętli :
- Cache faktyczna wartość i. (Uwaga: nie ruch pomiędzy, więc nie ma powodu, aby to zrobić)
- Przyrost I
- Śmiało
W drugiej pętli:
- minimalnego wzrostu i bezpośrednio
- Go przed siebie.
Tak więc druga pętla jest bardziej wydajna bez utraty jakości. Jakieś inne opinie?
Jedynym sposobem sprawdzenia, czy druga pętla jest bardziej wydajna, jest zmierzenie jej (zakładając, że wygenerowany kod zespołu jest inny). Z "int" wątpię, że to robi różnicę. Może z pewnymi typami iteratorów. ** Edytuj ** Mówię tutaj w C++. – juanchopanza
Kiedy mówisz "zmienna * zostanie zbuforowana *", czy używasz jakiegoś zrozumienia lub badania sytuacji, czy po prostu spekulujesz? –
Widziałem tag C++, ale potem zniknął i widzę tylko java, więc napisałem dupę dla java. –