Logo pl.boatexistence.com

Dlaczego łączenie ciągów jest złe?

Spisu treści:

Dlaczego łączenie ciągów jest złe?
Dlaczego łączenie ciągów jest złe?

Wideo: Dlaczego łączenie ciągów jest złe?

Wideo: Dlaczego łączenie ciągów jest złe?
Wideo: DO NOT Concatenate Strings Like This In Python, There's A Better Way. 2024, Może
Anonim

To jest „konkatenacja ciągów” i jest to zła praktyka: … Niektórzy mogą powiedzieć, że jest to powolne, głównie dlatego, że części wynikowego ciągu są kopiowane wiele razy Rzeczywiście, na każdym operatorze + klasa String przydziela nowy blok w pamięci i kopiuje do niego wszystko, co ma; plus łączony przyrostek.

Czy łączenie ciągów jest nieefektywne?

Konkatenacja nie jest tak nieefektywna, ponieważ współczesne kompilatory zastępują ją wydajną implementacją opartą na StringBuilderze (zobaczysz to, jeśli spojrzysz na kod bajtowy pliku klasy).

Dlaczego łączenie ciągów jest drogie?

To było kosztowne. Zajmijmy się najpierw kwestią, dlaczego jest to kosztowne. W Javie obiekty łańcuchowe są niezmienne, co oznacza, że po ich utworzeniu nie można ich zmienić. Więc kiedy połączymy jeden ciąg z drugim, tworzony jest nowy ciąg, a starszy jest zaznaczany jako garbage collector.

Jakie są niebezpieczeństwa związane z używaniem łączenia ciągów w zapytaniu SQL?

1 Odpowiedź

  1. Wydajność: Używając przygotowanej instrukcji, składnię zapytania należy przeanalizować tylko raz, a ścieżkę dostępu należy obliczyć tylko raz dla każdego odrębnego typu zapytania. …
  2. Bezpieczeństwo: Używanie łączenia ciągów z danymi dostarczonymi przez użytkownika jest zawsze podatne na ataki SQL-injection.

Czy łączenie ciągów jest wolne w Pythonie?

To zachowanie nie powinno Cię zaskoczyć: obiekty łańcuchowe Pythona są niezmienne, więc każda konkatenacja generuje nowy łańcuch zamiast modyfikować już istniejący. Nie jest również niespodzianką, że konkatenacje wielu ciągów są uważane za wolne.

Zalecana: