การเพิ่มประสิทธิภาพ ASP, เทคโนโลยีแคช ASP
1. แคช ASP คืออะไร/ทำไมแคช
เมื่อเว็บไซต์ของคุณถูกสร้างขึ้นในยุคแรก ๆ ของเทคโนโลยี ASP คุณอาจรู้สึกถึงความสะดวกสบายที่นำโดยเทคโนโลยีเว็บแบบไดนามิก ASP รวมถึงการควบคุม HTTP แบบสุ่มและฟรี อย่างไรก็ตามเมื่อจำนวนการเข้าชมเพิ่มขึ้นคุณจะพบว่าการเข้าถึงเว็บไซต์ของคุณช้าลงและช้าลงและ IIS มีบ่อยครั้งมากขึ้นเรื่อย ๆ ถัดไปคุณต้องเพิ่มประสิทธิภาพ ASP เช่นการแทนที่ฐานข้อมูลที่ดีมากขึ้นการสร้างดัชนีการเขียนขั้นตอนการจัดเก็บและอื่น ๆ มาตรการเหล่านี้บางอย่างไม่จำเป็นต้องเพิ่มความดันต้นทุนในขณะที่ความดันต้นทุนบางส่วน (เช่นการเข้าถึงคลัสเตอร์ไปยัง SQL) และผลกระทบไม่จำเป็น
เมื่อเผชิญกับแรงกดดันของการเข้าถึงเว็บฉันคิดว่าวิธีที่ประหยัดที่สุดคือการใช้เทคโนโลยีการเพิ่มประสิทธิภาพแคชเพื่อบรรเทาความกดดันบริการของเว็บ
ปริมาณการเข้าถึงเว็บที่เพิ่มขึ้นมักหมายถึงการเติบโตอย่างรวดเร็วของความต้องการทรัพยากรดังต่อไปนี้:
1. การรับส่งข้อมูลการ์ดเครือข่ายที่เพิ่มขึ้นจำเป็นต้องใช้การรับส่งข้อมูลเครือข่ายการประมวลผล CPU และเธรด I/O เครือข่ายมากขึ้น
2. จำเป็นต้องเปิด/ปิดการเชื่อมต่อฐานข้อมูลบ่อยขึ้น (หากใช้เทคโนโลยีฐานข้อมูล -ASP จะใช้ฐานข้อมูลเป็นที่เก็บข้อมูล) จำนวนสิ่งต่าง ๆ ที่ใช้ทรัพยากรอย่างจริงจังและการหยุดชะงักที่เกิดจากทรัพยากรการแข่งขันของการแข่งขัน การทำธุรกรรมซึ่งจะเพิ่มเครือข่าย I/O
3. หากใช้เซสชัน IIS จะใช้หน่วยความจำมากขึ้นเพื่อรักษาสถานะและการใช้หน่วยความจำอาจทำให้หน่วยความจำทางกายภาพไม่เพียงพอทำให้เกิดการแลกเปลี่ยนบ่อยครั้งระหว่างหน่วยความจำทางกายภาพและหน่วยความจำเสริมซึ่งทำให้การดำเนินการรหัสหยุด
4. เนื่องจากการตอบสนองที่ทันเวลาของการเข้าถึงความล้มเหลวในการเข้าถึงเว็บเพจจะเกิดขึ้นซึ่งจะทำให้ผู้ใช้รีเฟรชดังนั้นจึงทำให้รุนแรงขึ้นความต้องการของซีพียูหน่วยความจำและทรัพยากรอื่น ๆ
ในความเป็นจริงการพิจารณาเว็บแอปพลิเคชันปกติหลายครั้งที่การดำเนินการรหัสแบบไดนามิกไม่จำเป็น
2. การจำแนกประเภทของแคช ASP
สรุปโดยไม่ได้รับอนุญาตแคชของ ASP สามารถแบ่งออกเป็นสองประเภท:
1. แคชไฟล์
แคชไฟล์ที่เรียกว่า SO คือการตัดสินตามการตัดสินเชิงตรรกะ สามารถเข้าถึงไฟล์แบบคงที่จากการเปลี่ยนเส้นทางเว็บสู่เทคโนโลยีเพื่อตอบสนองความต้องการในการลดซีพียูทรัพยากรฐานข้อมูล มีแอพพลิเคชั่นมากมาย Castle มีผลข้างเคียง (ประโยชน์) -สามารถรวมได้อย่างง่ายดายโดยเครื่องมือค้นหาเช่น Google ระบบการแถลงข่าวที่เรียกว่าบางอย่างได้นำเทคโนโลยีนี้มาใช้
2. แคชบ่มฟิล์มไฟล์
แคชไฟล์ที่เรียกว่า SO นั้นขึ้นอยู่กับการตัดสินเชิงตรรกะ ข้อมูลในรูปแบบของไฟล์ ตัวอย่างเช่นเรามักจะจัดเก็บข้อมูลบางอย่างในรูปแบบ XML จากนั้นใช้เทคโนโลยี XSLT เพื่อใช้การแสดงผล (การประมวลผล XML มักจะต้องใช้ทรัพยากร CPU จำนวนมากดังนั้นเช่นมักจะอ่าน XML โดยตรงไปยังไคลเอนต์เพื่อจัดการกับ CPU ของลูกค้า) นี่คือวิธีการประมวลผลฟอรัมของ CSDN
3. แคชหน่วยความจำหลัก
นอกจากนี้คุณยังสามารถพิจารณาจัดการกับแคชในหน่วยความจำและจัดเก็บเนื้อหาที่ต้องตอบสนองในเวลาที่เหมาะสมในหน่วยความจำ หากความต้องการการเข้าถึงจำนวนมากมีความเข้มข้นในหน้าเล็ก ๆ หรือที่เก็บข้อมูลหลักหลายหน้าฉันต้องการใช้แคชหน่วยความจำหลักเพื่อปรับปรุงประสิทธิภาพการเข้าถึงเว็บอย่างมาก
3. วิธีการบรรลุ/ใช้แคช
ปัญหาต่อไปนี้จำเป็นต้องได้รับการพิจารณาเพื่อใช้แคช:
1. หน้าใดจะไม่เปลี่ยนแปลงในเวลาอันสั้น?
วิเคราะห์ไซต์ของคุณเองมีหลายหน้า ตัวอย่างเช่นเว็บไซต์มักจะมีคอลัมน์ข่าวและข้อมูล จากนั้นหน้าเหล่านี้เหมาะสำหรับแคชที่มีไฟล์คงที่ ในความเป็นจริงระบบข่าวประชาสัมพันธ์ที่เรียกว่าดังนั้นคุณยังสามารถอ้างถึงแนวคิดของระบบเหล่านี้เพื่อแปลงหน้า ASP แบบไดนามิกดั้งเดิมของคุณ
2. หน้าเหล่านั้นถูกสร้างขึ้นสำหรับการเข้าชมทั้งหมดเพื่อสร้างตรรกะเดียวกัน (นั่นคือไม่แยกความแตกต่างระหว่างผู้เข้าชม)
ยกเว้นคอลัมน์เช่นข่าวและข้อมูลผู้เข้าชมทั้งหมดจะดูอินเทอร์เฟซและการประยุกต์ใช้ทรัพยากรเช่นฟอรัมและทรัพยากรการบริโภคอื่น ๆ โดยทั่วไปสามารถออกแบบเป็นรุ่นตรรกะแบบครบวงจร (โพสต์เดียวกัน Zhang Sanli และ Sisi ก็เหมือนกัน ) นอกจากนี้คุณยังสามารถพิจารณาการทำลายข้อมูลและใช้เทคโนโลยีสคริปต์นอกเหนือจากความสามารถในการประมวลผลเซิร์ฟเวอร์นั่นคือเบราว์เซอร์ไคลเอนต์สำหรับการประมวลผล
3. ใช้ต้นทุนและเก็บเกี่ยวแคช
ส่วนใหญ่เวลาสำหรับการเปลี่ยนแปลงอวกาศ (การตอบสนอง) ใช้เทคโนโลยีแคชเพื่อประมวลผลเนื้อหาที่จำเป็นบ่อยครั้งเพื่อปรับปรุงความสามารถในการตอบสนองของเว็บเซิร์ฟเวอร์และที่สำคัญกว่านั้นคือการชนะความโปรดปรานของผู้เข้าชม
ราคาคือความต้องการพื้นที่เว็บเพิ่มขึ้นและอาจส่งผลกระทบต่อเอฟเฟกต์การเข้าถึง
แต่ฉันคิดว่าแคชที่เหมาะสมนั้นยิ่งใหญ่กว่าข้อเสีย
4. แทนที่จะใช้แคชในสถานที่เหล่านั้น
หน้าแบบสอบถามแบบไดนามิกเนื้อหาการสืบค้นของแต่ละคนแตกต่างกันดังนั้นผลลัพธ์การแสดงผลจึงไม่เหมือนกันดังนั้นจึงไม่น่าจะสร้างแคชผลลัพธ์แบบสอบถามดังนั้นแคชจึงซับซ้อนกว่าและที่ด้านล่างของอัตราการใช้แคช ค่าใช้จ่ายในการจัดการ
ประการที่สี่การวิเคราะห์อินสแตนซ์
สมมติว่ารูปแบบดั้งเดิมของฟอรัมคำแนะนำมีดังนี้:
ในไดเรกทอรีราก:
default.asp หน้าแรกโดยทั่วไปสาระสำคัญคำแนะนำและสิ่งที่คล้ายกัน
listborad.asp ไฟล์นี้แสดงชื่อและการแนะนำของคอลัมน์ทั้งหมด
ListThread.asp ไฟล์ไม่ได้พกพาพารามิเตอร์ใด ๆ เพื่อระบุสติกเกอร์ทั้งหมดและพกพา mainbid เพื่อแสดงสติกเกอร์ทั้งหมดของชิ้นส่วนที่แน่นอน หากดำเนินการย่อยเพื่อระบุโพสต์ของคอลัมน์เฉพาะ หากคุณพกพาพารามิเตอร์หน้าเพื่อระบุการแบ่งหน้าของหัวข้อ
ViewThread.asp แสดงเนื้อหาสติกเกอร์บางอย่าง เราคิดว่าโพสต์จะแสดงเป็นคำพูดและทั้งหมดที่ติดตามสติกเกอร์อยู่ด้านหลัง พารามิเตอร์ ID คือโพสต์ที่จะแสดง
ตอบกลับ. ASP ตอบกลับโพสต์บางรายการพกพาพารามิเตอร์เพื่อตอบกลับโพสต์บางรายการ
ไม่มีการสนทนาอื่น ๆ
ด้านบนเราจะเห็นได้ว่าหากทั้งหมดของพวกเขาดำเนินการโดยใช้ ASP/PHP ดั้งเดิมการดำเนินการของไฟล์ ASP เกือบทุกไฟล์ต้องใช้การดำเนินการฐานข้อมูลการสืบค้นบ่อยครั้งและแบบสอบถามหลายตัว ควรทราบว่าฐานข้อมูลการสืบค้นในที่สุดจะทำให้ประสิทธิภาพลดลงความเร็วในการตอบสนองลดลงและผลกระทบการท่องเว็บที่ช้าต่อผู้เข้าชมจะไม่เอื้อต่อคุณภาพของเว็บ ที่สำคัญกว่าสำหรับคนสองคนใน A และ B พวกเขาไปที่ ViewThread.asp และ like ถ้า ids สอดคล้องกันหลายครั้งที่พวกเขาจะเห็นเนื้อหาเดียวกัน (รหัส HTML ที่ได้รับจากเบราว์เซอร์ของพวกเขาเกือบจะเหมือนกัน) แต่สำหรับ สำหรับสิ่งนี้ในเนื้อหาเดียวกันเซิร์ฟเวอร์จำเป็นต้องเปิดการเชื่อมต่อฐานข้อมูลการสืบค้นอ่านบันทึกและแสดงว่าการเชื่อมต่อบันทึกและการเชื่อมต่อฐานข้อมูลถูกปิด แก่นแท้ แก่นแท้ แก่นแท้ หากผู้คนจำนวนมากเข้าถึงได้มากขึ้นผลลัพธ์สุดท้ายคือคนเหล่านี้ทำให้ทรัพยากรเซิร์ฟเวอร์รุนแรงขึ้น ในความเป็นจริงแรงงานที่ซ้ำกันสำหรับเนื้อหาเดียวกันสามารถปรับให้เหมาะสมด้วยเทคโนโลยีแคช ตัวอย่างเช่น:
หลังจากส่งเนื้อหาของ repy.asp แล้วเราเรียกฟังก์ชันสแตติกทันทีเพื่อสร้างเนื้อหาแบบคงที่ไปยังไฟล์ HTML แบบคงที่เช่น viewThread_xxxx.htm แล้วเมื่อไปที่ ViewThread.asp? มุมมองไฟล์คงที่ที่สอดคล้องกัน ViewThreadxxxx.htm ด้วยวิธีนี้เมื่อโพสต์ไม่ได้ล่าสุดเขาจะได้รับการให้กับเนื้อหาคงที่ของผู้ชมเสมอ
Listborad.asp ยังสามารถใช้งานแบบคงที่ เราสามารถวิเคราะห์พารามิเตอร์ที่อาจดำเนินการตั้งค่าชื่อไฟล์แคชเป็น listboard_xx.htm และอัปเดต listboard_xxx.htm เมื่อเพิ่มคอลัมน์ใหม่ ListThread.asp คล้ายกัน แต่เนื่องจากพารามิเตอร์มากขึ้นจึงมีไฟล์แคชจำนวนมาก หากคุณต้องการแคช ListThread.asp? เช่นเดียวกับค่าเริ่มต้นของค่าเริ่มต้น
แล้วจะตัดสินว่าจะอัปเดตเมื่อใด อัปเดตกี่โมง?
讨论 ListThread.asp? ไฟล์คงที่ โปรดทราบว่าไม่มีการดำรงอยู่ที่นี่หมายความว่าการเกิดขึ้นของเนื้อหาใหม่ต้องการให้เราอัปเดต
ไฟล์จะไม่มีอยู่จริงได้อย่างไร? ลบ. เราสามารถลบไฟล์คงที่ทั้งหมดเช่น listThread_xxx_p2.htm เมื่อเผยแพร่สติกเกอร์ใหม่การลบสติกเกอร์และสติกเกอร์ที่เคลื่อนย้าย ด้วยวิธีนี้แคชจะได้รับแจ้ง
ยังมีปัญหาที่เหลืออยู่ในขณะนี้วิธีการสร้างไฟล์คงที่?
เราสังเกตเห็นว่าเนื้อหาเดียวกันที่เราพูดถึงก่อนหน้านี้我们可以将改造前的 default.asp、 listThread.asp 等拷贝一个副本, 取名为 default_d.asp、 listTHREAD_2.ASP, 且在同一个目录中(理论上 ListTHTRAD.ASP? subid = 123 同 listTHREAD_D.ASP? ผลการเข้าถึงของ subid = 123 จะเป็นเนื้อหาเดียวกัน) ดังนั้นในตรรกะของความจำเป็นในการสร้างไฟล์คงที่เราเรียกสำเนาก่อนการแก้ไขโดยคำขอการเข้าถึงเว็บรับรหัส HTML และจัดเก็บเป็น ไฟล์คงที่ คำขอเว็บนี้เทียบเท่ากับก่อนที่ผู้ดูจริงจะเข้าถึงเนื้อหาคงที่เซิร์ฟเวอร์นั้นจะถูกตรวจสอบโดย HTML ที่จะส่งออกจากนั้นส่งคืนรหัสเหล่านี้เพื่อจัดเก็บฟังก์ชั่นการทำงานของไฟล์เป็นไฟล์คงที่ ด้วยวิธีนี้ไฟล์แคชถูกสร้างขึ้นก่อนที่ผู้ชมจริง
โครงการดังกล่าวแทบจะไม่ได้สัมผัสเค้าโครงดั้งเดิมและแทบจะไม่ทำให้เกิดข้อผิดพลาดเช่น 404 เนื่องจากการเปลี่ยนแปลง ประการที่สองไฟล์คงที่จะช่วยให้ไซต์ของคุณรวมอยู่ในเครื่องมือค้นหาเช่น Google ได้อย่างง่ายดาย ทำไมไม่?
ในที่สุดเตือนว่าผ่านการเข้าถึงเว็บในสภาพแวดล้อมการเขียนโปรแกรม ASP หลายคนใช้ส่วนประกอบ XMLHTTP เพื่อเข้าถึงซึ่งจะทำให้เกิดปัญหามากมาย ทรัพยากรที่ XMLHTTP เองจะแคชคำขอส่งผลให้เนื้อหาที่ได้รับจากคำขอของเราผ่านส่วนประกอบนี้ทำให้เกิดความสับสนอย่างมีเหตุผล ดังนั้นคุณควรเลือกวัตถุ HTTP เซิร์ฟเวอร์ XML หรือส่วนประกอบ WinHTTP เพื่อใช้ทรัพยากรคำขอเว็บ
การใช้เทคโนโลยีแคชใน ASP สามารถปรับปรุงประสิทธิภาพของเว็บไซต์ของคุณเป็นส่วนใหญ่
ก่อนที่จะแนะนำเทคโนโลยีเหล่านี้เรามาอธิบายว่าเทคโนโลยีแคชของ ASP คืออะไร
แคชที่เรียกว่า SO กำลังเปิดพื้นที่เพื่อบันทึกข้อมูลในหน่วยความจำ เมื่อคุณดำเนินการค้นหาและใส่ผลลัพธ์การสืบค้นลงในแคชคุณสามารถเยี่ยมชมข้อมูลได้อย่างรวดเร็ว และถ้าคุณไม่ใส่ข้อมูลลงในแคชเมื่อคุณเรียกใช้การสืบค้นนี้อีกครั้งเซิร์ฟเวอร์จะใช้กระบวนการจากฐานข้อมูลและจัดเรียง
เมื่อข้อมูลถูกเก็บไว้ในแคชเวลาที่ใช้เมื่อการสืบค้นอีกครั้งส่วนใหญ่จะเป็นส่วนใหญ่ในเวลาที่แสดงข้อมูล
กล่าวอีกนัยหนึ่งเราไม่ควรใส่ข้อมูลที่มักจะต้องเปลี่ยนเป็นแคชของเซิร์ฟเวอร์
ตอนนี้เราจะพูดคุยเกี่ยวกับเทคนิคการใช้ ASP บนเซิร์ฟเวอร์
เทคโนโลยีแคช
เมื่อคุณมีข้อมูลจำนวนมาก (คงที่นั่นคือการเปลี่ยนแปลงที่น้อยลง) จำเป็นต้องแสดงต่อไคลเอนต์คุณสามารถพิจารณาใช้เทคโนโลยีแคชบนเซิร์ฟเวอร์ เทคโนโลยีนี้เหมาะอย่างยิ่งสำหรับเว็บไซต์เหล่านั้นที่มีความสอดคล้องสไตล์การแสดงผลที่แข็งแกร่ง (HUH สำหรับเว็บไซต์ที่ไม่ใช่ Mainstream ไม่ใช่เรื่องง่ายที่จะใช้งาน)
ในความเป็นจริงวิธีการใช้งานนั้นง่ายโดยเฉพาะอย่างยิ่งเพียงแค่ดูตัวอย่างง่ายๆต่อไปนี้
นี่คือตัวอย่างสำหรับการแสดงการจำแนกหนังสือ
displaybooks.asp ไฟล์:
< %@ language = javas
cript %>
<html>
<body>
<วิธีการฟอร์ม = โพสต์>
การจำแนกหนังสือ; < % = getbookslistbox () %>
<p>
<ประเภทอินพุต = ส่ง>
-
ฟังก์ชั่น getbookslistbox () ()
-
Bookslistbox = แอปพลิเคชัน (Bookslistbox)
if (bookslistbox! = null) กลับ bookslistbox;
crlf = string.fromCharcode (13, 10)
BooksListBox = <เลือกชื่อ = หนังสือ> + crlf;
SQL = SELECT * จากคำสั่งซื้อหนังสือตามชื่อ;
cnnbooks = server.createObject (adodb.connection);
cnnbooks.open (หนังสือ, ผู้ดูแลระบบ,);
rstbooks = cnnbooks.execute (SQL);
fldbookName = rstbooks (BookName);
ในขณะที่ (! rstbooks.eof) {
Bookslistbox = Bookslistbox + <pontion> +
fldbookname + + crlf;
rstbooks.movenext ();
-
Bookslistbox = Bookslistbox +
แอปพลิเคชัน (Bookslistbox) = Bookslistbox
ส่งคืน Bookslistbox;
-
-
มันง่ายมากในความเป็นจริงมันใช้เทคโนโลยีแอปพลิเคชันที่ง่ายมากและความแตกต่างอยู่ในประโยคเดียว:
แอปพลิเคชัน (Bookslistbox) = Bookslistbox
คุณสามารถตรวจสอบได้ว่าคุณพบว่าจำนวนคำขอบนเซิร์ฟเวอร์จะลดลงมาก สถานการณ์นี้เหมาะอย่างยิ่งสำหรับเว็บไซต์ที่ไม่บ่อยนักเช่นการอัปเดตเหล่านั้นเช่นคุณได้รับการอัปเดตเพียงครั้งเดียว (หรือเป็นเวลานาน)
มาพูดคุยเกี่ยวกับเทคโนโลยีแคชลูกค้า เทคโนโลยีนี้ส่วนใหญ่ใช้เพื่อบันทึกข้อมูลส่วนบุคคลของผู้ใช้เช่นรหัสผ่านผู้ใช้รหัสรหัส ฯลฯ ส่วนใหญ่ใช้คุณลักษณะบางอย่างของ ADO ในเวลาเดียวกันชาวเน็ตบางคนได้กล่าวถึงคำถามที่สามารถใช้วัตถุ ADO ในการวางตำแหน่งได้หรือไม่ คำอธิบายไม่ชัดเจนให้รหัสพูดด้านล่าง:
ไฟล์ global.asa:
<!
ไฟล์/ระบบ/ado/msado15.dll->
<ภาษาสคริปต์ = vbscript runat = เซิร์ฟเวอร์>
Application_onstart ย่อย
SQL = เลือกชื่อผู้ใช้รหัสผ่านจาก userInfo
cnnusers = dsn = ผู้ใช้
ตั้งค่า rsusers = server.createObject (adodb.recordset)
'โปรดทราบว่าสองประโยคต่อไปนี้ใช้เพื่อให้ได้เทคโนโลยี ADO ที่มีให้สำหรับการเชื่อมต่อการเชื่อมต่อ
rscsomomomersorLocation = aduseclient
RSCOSOMERS.OPEN SQL, CNNADVWORKS, Adopenstatic, AdlockReadonly
'ทำลายการเชื่อมต่อของ RecordSet และฐานข้อมูล
rscosomers.activeConnection = ไม่มีอะไร
ตั้งค่าแอปพลิเคชัน (rscustomers) = rscustomers
สิ้นสุดย่อย
ผู้ใช้ไฟล์. asp
-
'วิธีการโคลนทำให้ผู้ใช้แต่ละคนมีคอลเลกชัน Recordset
ตั้งค่าของคุณ = แอปพลิเคชัน (rsusers). clone
ตั้งค่าชื่อผู้ใช้ = ผู้ใช้ (ชื่อผู้ใช้)
ตั้งรหัสผ่าน = YouRUsers (รหัสผ่าน)
ทำ unil เจ้าของของคุณ eof
-
ชื่อผู้ใช้: < % = ชื่อผู้ใช้ %> รหัสผ่านผู้ใช้: < % = รหัสผ่าน %>
-
yourusers.movenext
วง
-