ฉันมักจะเขียนโปรแกรม ASP แบบไม่เป็นทางการโดยไม่ได้คำนึงถึงประสิทธิภาพการทำงานมากนัก ASP ค่อนข้างทนต่อไวยากรณ์และมีความทนทานต่อข้อผิดพลาดสูง สามารถใช้งานได้โดยตรงโดยไม่ต้องกำหนดตัวแปร ชื่อตัวแปรไม่จำเป็นต้องแยกความแตกต่างระหว่างตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก JSP ดังนั้น ในบรรดาภาษาต่างๆ มากมายที่ฉันสัมผัสมา ASP เป็นภาษาที่เข้มงวดน้อยที่สุดและเป็นภาษาที่มีข้อกำหนดต่ำที่สุดสำหรับโปรแกรมเมอร์
เมื่อวานฉันทดสอบการเปรียบเทียบความเร็วการทำงานของ asp.net, php และ asp วันนี้ฉันอยากจะเห็นว่าตัวแปรที่กำหนดและตัวแปรที่ไม่ได้กำหนดมีผลกระทบต่อประสิทธิภาพการทำงานของ asp มากน้อยเพียงใด ผลลัพธ์ที่ได้นั้นน่าประหลาดใจมาก กว่าตัวแปรที่ไม่ได้กำหนดไว้เร็วเป็นสองเท่า!
โปรแกรมทดสอบยังคงเหมือนกับเมื่อวาน โดยรัน for loop 10 ล้านครั้งเพื่อให้ได้เวลาดำเนินการ
1. โปรแกรมไม่ได้กำหนดตัวแปร (dim i)
คัดลอกรหัสรหัสดังต่อไปนี้:
-
เวลาเริ่มต้นสลัว
เวลาเริ่มต้น=ตัวจับเวลา()
สำหรับ i = 1 ถึง 10000000
ต่อไป
เวลาสิ้นสุดสลัว
เวลาสิ้นสุด=ตัวจับเวลา()
การตอบสนอง เขียนเวลาดำเนินการเพจ: & FormatNumber((endtime-startime)*1000,3) & มิลลิวินาที
-
2. โปรแกรมกำหนดตัวแปร (dim i)
คัดลอกรหัสรหัสดังต่อไปนี้:
-
สลัวฉัน
เวลาเริ่มต้นสลัว
เวลาเริ่มต้น=ตัวจับเวลา()
สำหรับ i = 1 ถึง 10000000
ต่อไป
เวลาสิ้นสุดสลัว
เวลาสิ้นสุด=ตัวจับเวลา()
การตอบสนอง เขียนเวลาดำเนินการเพจ: & FormatNumber((endtime-startime)*1000,3) & มิลลิวินาที
-
แต่ละโปรแกรมจะถูกดำเนินการ 5 ครั้ง (ยกเว้นการดำเนินการครั้งแรก) จากนั้นจึงนำค่าเฉลี่ยมา ต่อไปนี้เป็นผลการทดสอบ:
กำหนดตัวแปร | เวลาดำเนินการ | เวลาเฉลี่ย | ||||
เลขที่ | 1890มิลลิวินาที | 1859มิลลิวินาที | 1844มิลลิวินาที | 1875มิลลิวินาที | 1859มิลลิวินาที | 1865มิลลิวินาที |
ใช่ | 890ms | 890ms | 984ms | 875ms | 890ms | 905ms |
จากผลการทดสอบข้างต้น จะเห็นได้ว่าความเร็วในการดำเนินการของ asp นั้นเร็วเป็นสองเท่าเมื่อกำหนดตัวแปรมากกว่าการไม่กำหนดตัวแปร
เหตุใดจึงเป็นเช่นนั้น ข้าพเจ้าไม่ได้ศึกษาเพิ่มเติม อย่างไรก็ตาม จากตัวอย่างนี้ ฉันรู้สึกว่าการเขียนโปรแกรมมาตรฐานสามารถทำให้โปรแกรมทำงานได้อย่างมีประสิทธิภาพมากขึ้น สำหรับการเขียนโปรแกรมที่ไม่ได้มาตรฐาน แม้ว่าภาษาจะทนทานต่อข้อผิดพลาด แต่กระบวนการวิเคราะห์ยังต้องใช้เวลา แน่นอน สำหรับโปรแกรมง่ายๆ เวลาที่แตกต่างกันระหว่างการทำให้เป็นมาตรฐานและไม่ได้มาตรฐานอาจมีเพียงเล็กน้อย แต่หากระบบที่คุณพัฒนามีขนาดค่อนข้างใหญ่ โดยมีเพจและการเรียกใช้ฟังก์ชันจำนวนมาก ความแตกต่างระหว่างการทำให้เป็นมาตรฐานและไม่ได้มาตรฐานจะเป็น เล็กน้อย ความแตกต่างในการใช้เวลาจะถูกเน้นตั้งแต่ 1 หรือ 2 ครั้งไปจนถึงหลายสิบครั้ง