แนะนำ: รหัสสำหรับเว็บไซต์ภาพยนตร์ Max เพื่อสร้างฟีด RSS เมื่อไม่นานมานี้เพื่อเพิ่มฟังก์ชั่นการสมัครสมาชิก RSS ในเว็บไซต์ภาพยนตร์ของฉันฉันเขียนรหัส ASP ที่สร้างฟีด RSS แบบไดนามิก ฉันไม่สามารถอัปโหลดไฟล์แนบได้ดังนั้นฉันจึงวางรหัส ไม่นาน เพื่อนที่ใช้ Max เป็นเว็บไซต์ภาพยนตร์สามารถใช้โดยตรง เปลี่ยนไซต์ประเภทอื่น ๆ
นักพัฒนา ASP ทำงานอย่างต่อเนื่องเพื่อให้ได้ประสิทธิภาพที่ดีขึ้นและปรับขนาดได้ในโครงการออกแบบของพวกเขา โชคดีที่มีหนังสือและเว็บไซต์มากมายที่ให้คำแนะนำที่ดีเกี่ยวกับเรื่องนี้ อย่างไรก็ตามพื้นฐานของคำแนะนำเหล่านี้คือข้อสรุปที่ดึงมาจากโครงสร้างของงานแพลตฟอร์ม ASP และไม่มีการวัดการปรับปรุงประสิทธิภาพที่แท้จริง เนื่องจากคำแนะนำเหล่านี้ต้องการกระบวนการเข้ารหัสที่ซับซ้อนมากขึ้นและลดความสามารถในการอ่านการเข้ารหัสนักพัฒนาสามารถวัดได้ว่ามันคุ้มค่าที่จะจ่ายเพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน ASP ของพวกเขาโดยไม่เห็นผลการดำเนินงานจริง
บทความนี้แบ่งออกเป็นสองส่วนและฉันจะแนะนำผลการทดสอบประสิทธิภาพบางอย่างเพื่อช่วยให้นักพัฒนากำหนดว่าการริเริ่มเฉพาะไม่เพียง แต่คุ้มค่าสำหรับโครงการในอนาคต แต่ยังสามารถอัปเดตโครงการดั้งเดิมได้หรือไม่ ในส่วนแรกฉันจะตรวจสอบปัญหาพื้นฐานบางอย่างในการพัฒนา ASP ในส่วนที่สองการเพิ่มประสิทธิภาพของฟังก์ชั่น ADO จะเกี่ยวข้องและผลลัพธ์ของพวกเขาจะถูกนำมาเปรียบเทียบกับหน้า ASP ที่เรียกวัตถุ VB COM เพื่อเรียกใช้ฟังก์ชัน ADO เดียวกัน ผลลัพธ์เหล่านี้เปิดหูเปิดตาและบางครั้งก็น่าประหลาดใจ
ในบทความนี้เราจะตอบคำถามต่อไปนี้:
* วิธีที่มีประสิทธิภาพที่สุดในการเขียนเนื้อหาที่สร้างโดย ASP ลงในสตรีมตอบสนองคืออะไร?
* ควรเปิดบัฟเฟอร์หรือไม่?
* ฉันควรพิจารณาเพิ่มความคิดเห็นในรหัส ASP หรือไม่?
* ควรตั้งค่าภาษาเริ่มต้นอย่างชัดเจนสำหรับหน้าหรือไม่
* ควรปิดสถานะเซสชันหากไม่จำเป็น?
* ควรวางตรรกะสคริปต์ในรูทีนย่อยและพื้นที่ฟังก์ชันหรือไม่?
* ผลกระทบของการใช้ไฟล์รวมคืออะไร?
* จะใช้โหลดแบบไหนเมื่อทำการประมวลผลข้อผิดพลาด?
* การตั้งค่าการประมวลผลบริบทมีผลกระทบต่อประสิทธิภาพหรือไม่?
การทดสอบทั้งหมดดำเนินการโดยใช้เครื่องมือโฟกัสเว็บแอปพลิเคชันของ Microsoft (WAST) ซึ่งเป็นเครื่องมือฟรีที่สามารถพบได้ที่นี่ ฉันสร้างสคริปต์ทดสอบอย่างง่ายด้วย WAST เรียกทดสอบหน้า ASP ซ้ำ ๆ ที่อธิบายไว้ด้านล่าง (มากกว่า 70,000 ครั้งแต่ละครั้ง) เวลาของปฏิกิริยาจะขึ้นอยู่กับเวลารวมของไบต์สุดท้าย (TTLB) โดยเฉลี่ยนั่นคือตั้งแต่เวลาที่ร้องขอเวลาเริ่มต้นจนถึงเวลาที่เครื่องมือได้รับข้อมูลบิตสุดท้ายจากเซิร์ฟเวอร์ เซิร์ฟเวอร์ทดสอบของเราคือ Pentium 166 ที่มีหน่วยความจำ 196MB และ Pentium 450 พร้อมหน่วยความจำ 256MB คุณอาจคิดว่าประสิทธิภาพของเครื่องเหล่านี้ไม่ได้ก้าวหน้ามาก แต่อย่าลืมว่าเราไม่ได้ทดสอบความสามารถของเซิร์ฟเวอร์เราเพียงแค่ทดสอบเวลาที่เซิร์ฟเวอร์ใช้ในการประมวลผลทีละหน้า เครื่องเหล่านี้ไม่ได้ทำงานอื่นในระหว่างการทดสอบ สคริปต์ทดสอบไม่ได้รายงานการทดสอบและหน้าทดสอบ ASP ทั้งหมดรวมอยู่ในไฟล์ ZIP และคุณสามารถตรวจสอบและทดสอบด้วยตัวเอง
วิธีที่มีประสิทธิภาพที่สุดในการเขียนเนื้อหาที่สร้างโดย ASP ลงในสตรีมตอบสนองคืออะไร?
หนึ่งในเหตุผลหลักสำหรับการใช้ ASP คือการสร้างเนื้อหาแบบไดนามิกบนเซิร์ฟเวอร์ ดังนั้นจึงเห็นได้ชัดว่าจุดเริ่มต้นของการทดสอบของเราคือการกำหนดวิธีที่เหมาะสมที่สุดในการส่งเนื้อหาแบบไดนามิกไปยังสตรีมตอบสนอง ในบรรดาตัวเลือกมากมายทั้งสองเป็นพื้นฐานที่สุด: หนึ่งคือการใช้แท็ก ASP แบบอินไลน์และอีกอันคือการใช้คำสั่ง Response.write
ในการทดสอบตัวเลือกเหล่านี้เราสร้างหน้า ASP ที่ง่ายซึ่งมีการกำหนดตัวแปรบางตัวและใส่ค่าของพวกเขาลงในตาราง แม้ว่าหน้านี้จะง่ายและไม่สามารถใช้งานได้จริง แต่ก็ช่วยให้เราสามารถแยกและทดสอบคำถามแยกต่างหาก
ใช้แท็กอินไลน์ ASP
การทดสอบครั้งแรกเกี่ยวข้องกับการใช้แท็ก ASP แบบอินไลน์ < %= x %> โดยที่ x เป็นตัวแปรที่กำหนด วิธีนี้เป็นวิธีที่ง่ายที่สุดในการดำเนินการและช่วยรักษาส่วน HTML ของหน้าในรูปแบบที่ง่ายต่อการอ่านและบำรุงรักษา
| <% ตัวเลือกชัดเจน Dim FirstName ชื่อนามสกุลหรี่ มิดฟิลด์สลัว ที่อยู่หรี่ เมืองสลัว สภาพหม phonenumber สลัว Faxnumber สลัว DIM EMAIL วันเกิดสลัว firstName = John มิดเดิลแวร์ = Q LastName = สาธารณะ ที่อยู่ = 100 ถนนสายหลัก เมือง = นิวยอร์ก State = NY Phonenumber = 1-212-555-1234 FaxNumber = 1-212-555-1234 อีเมล = [email protected] วันเกิด = 1/1/1950 - <html> <head> <title> การทดสอบการตอบกลับ </title> </head> <body> <H1> การทดสอบการตอบกลับ </h1> <table> <tr> <td> <b> ชื่อแรก: </b> </td> <td> < %= firstName %> </td> </tr> <tr> <td> <b> Middle Initial: </b> </td> <td> < %= MiddolInitial %> </td> </tr> <tr> <td> <b> นามสกุล: </b> </td> <td> < %= นามสกุล %> </td> </tr> <tr> <td> <b> ที่อยู่: </b> </td> <td> < %= ที่อยู่ %> </td> </tr> <tr> <td> <b> เมือง: </b> </td> <td> < %= เมือง %> </td> </tr> <tr> <td> <b> state: </b> </td> <td> < %= state %> </td> </tr> <tr> <td> <b> หมายเลขโทรศัพท์: </b> </td> <td> < %= phonenumber %> </td> </tr> <tr> <td> <b> หมายเลขแฟกซ์: </b> </td> <td> < %= faxnumber %> </td> </tr> <tr> <td> <b> อีเมล: </b> </td> <td> < %= อีเมล %> </td> </tr> <tr> <td> <b> วันเกิด: </b> </td> <td> < %= วันเกิด %> </td> </tr> </table> </body> </html> |
รหัสเต็มสำหรับ /App1/Response1.asp
ก่อนหน้านี้ดีที่สุด (อัตราการตอบกลับ) = 8.28 msec/page
ใช้คำสั่ง response.write ในแต่ละบรรทัดของ HTML
เอกสารการเรียนรู้ที่ดีกว่าหลายฉบับแนะนำให้หลีกเลี่ยงวิธีการก่อนหน้านี้ เหตุผลหลักคือในระหว่างหน้าเอาต์พุตและหน้าการประมวลผลใช้เวลาตอบสนองหากเว็บเซิร์ฟเวอร์ต้องแปลงระหว่างการส่ง HTML บริสุทธิ์และสคริปต์การประมวลผลปัญหาที่เรียกว่าการแปลงบริบทจะเกิดขึ้น เมื่อโปรแกรมเมอร์ส่วนใหญ่ได้ยินสิ่งนี้ปฏิกิริยาแรกของพวกเขาคือการห่อทุกบรรทัดของ HTML ดั้งเดิมในฟังก์ชั่นการตอบสนอง
| - Response.write (<html>) Response.write (<head>) Response.write (<title> การทดสอบการตอบกลับ </title>) Response.write (</head>) Response.write (<body>) Response.write (<H1> การทดสอบการตอบกลับ </h1>) Response.write (<table>) Response.write (<tr> <td> <b> ชื่อแรก: </b> </td> <td> & firstName & </td> </tr>) Response.write (<tr> <td> <b> กลางเริ่มต้น: </b> </td> <td> & MiddleInitial & </td> </tr>) - |
/App1/Response2.asp Fragment
ก่อนหน้านี้ดีที่สุด (อัตราการตอบกลับ) = 8.28 msec/page
เวลาตอบสนอง = 8.08 msec/หน้า
ความแตกต่าง = -0.20 msec (ลดลง 2.4%)
เราสามารถเห็นได้ว่าการใช้วิธีนี้มีประสิทธิภาพน้อยมากเมื่อเทียบกับการใช้การติดแท็กแบบอินไลน์อาจเป็นเพราะหน้าโหลดเซิร์ฟเวอร์ด้วยการเรียกใช้ฟังก์ชันขนาดเล็กจำนวนมาก ข้อเสียที่ใหญ่ที่สุดของวิธีการนี้คือเนื่องจาก HTML ถูกฝังอยู่ในสคริปต์แล้วรหัสสคริปต์จึงกลายเป็นคำย้ำมากขึ้นและยากต่อการอ่านและบำรุงรักษา
แบ่งปัน: 20 ตัวอย่างที่มีประโยชน์มากในการเขียนโปรแกรม ASP (i) 1. วิธีการใช้ ASP เพื่อกำหนดเส้นทางทางกายภาพเสมือนจริงของเว็บไซต์ของคุณคำตอบ: ใช้วิธี Mappath: < % = Server.Mappath () %> 2 ฉันจะรู้ได้อย่างไรว่าเบราว์เซอร์ที่ผู้ใช้ใช้? คำตอบ: ใช้วิธีการวัตถุคำขอ:
5 หน้ารวมหน้าก่อนหน้า 12345NEXT หน้า