ทำไมการต่อสตริงถึงไม่ดี?

สารบัญ:

ทำไมการต่อสตริงถึงไม่ดี?
ทำไมการต่อสตริงถึงไม่ดี?
Anonim

นี่คือ “การต่อสตริง” และเป็นการฝึกฝนที่ไม่ดี: … บางคนอาจบอกว่าช้า ส่วนใหญ่เป็นเพราะบางส่วนของสตริงที่ได้จะถูกคัดลอกหลายครั้ง แน่นอน ในทุกตัวดำเนินการ + คลาส String จะจัดสรรบล็อกใหม่ในหน่วยความจำและคัดลอกทุกอย่างที่มีลงในนั้น บวกคำต่อท้ายที่ต่อกัน

การต่อสตริงไม่มีประสิทธิภาพหรือไม่

การต่อ การเรียงต่อกันไม่ได้ไร้ประสิทธิภาพขนาดนั้น เนื่องจากคอมไพเลอร์สมัยใหม่เข้ามาแทนที่ด้วยการใช้งานที่มีประสิทธิภาพโดยอิงจาก StringBuilder (คุณจะเห็นมันถ้าคุณดู bytecode ของ classfile)

ทำไมการต่อสตริงถึงมีราคาแพง

มันแพงนะ มาเจาะลึกกันก่อนว่าทำไมมันถึงแพงใน Java วัตถุสตริงจะไม่เปลี่ยนรูป ซึ่งหมายความว่าเมื่อสร้างแล้ว คุณจะไม่สามารถเปลี่ยนแปลงได้ ดังนั้นเมื่อเราเชื่อมสตริงหนึ่งกับอีกสตริง สตริงใหม่จะถูกสร้างขึ้น และสตริงที่เก่ากว่าจะถูกทำเครื่องหมายสำหรับตัวเก็บขยะ

การใช้การต่อสตริงในแบบสอบถาม SQL มีอันตรายอย่างไร

1 คำตอบ

  1. ประสิทธิภาพ: เมื่อใช้คำสั่งที่เตรียมไว้ ไวยากรณ์การสืบค้นจะต้องแยกวิเคราะห์เพียงครั้งเดียวและต้องคำนวณเส้นทางการเข้าถึงเพียงครั้งเดียวสำหรับแต่ละประเภทการสืบค้นที่แตกต่างกัน …
  2. ความปลอดภัย: การใช้การต่อสตริงกับข้อมูลที่ผู้ใช้ให้มานั้นมักจะถูกโจมตีด้วยการฉีด SQL

การต่อสตริงใน Python ช้าไหม

พฤติกรรมนี้ไม่ควรทำให้คุณประหลาดใจ: ออบเจ็กต์สตริงของ Python นั้นเปลี่ยนไม่ได้ ดังนั้นการต่อกันแต่ละครั้งจะสร้างสตริงใหม่แทนที่จะแก้ไขสตริงที่มีอยู่แล้ว ไม่แปลกใจเลยที่ การต่อสตริงหลายสตริงจะถือว่าช้า.