สมมติผมจะสร้างหน้าเว็บสัก1000หน้า สมมติว่าข้อมูลเหมือนกัน
html จะประมวลผลเร็วกว่าถูกต้องหรือเปล่าครับ แต่จะช้าตอนเขียนเพราะเราต้องสร้างไฟล์ทั้ง 1000 หน้า
ในขณะที่phpอาจจเขียนเพียงแค่ไฟล์เดียวแต่ใช้ query string เอา
ขอบคุณครับ :wanwan017: :wanwan017: :wanwan017:
ไม่รู้นะ อันนึงอ่านจากเนื้อที่ฮาร์ดดิส กะอีกอันอ่านจาก Buffer คิดว่าอ่านจาก Buffer น่าจะเร็วกว่า
อ้างถึงจาก: newton ใน 24 กุมภาพันธ์ 2013, 23:27:36
ไม่รู้นะ อันนึงอ่านจากเนื้อที่ฮาร์ดดิส กะอีกอันอ่านจาก Buffer คิดว่าอ่านจาก Buffer น่าจะเร็วกว่า
หมายถึงว่า ถ้าเป็น html จะไม่มีระบบบัฟเฟอร์ช่วยในเรื่องความเร็วหรือครับ
HTML เร็วกว่าอยู่แล้วครับ php ต้องประมวลผลผ่านเครื่อง sv แล้วแปลงเป็น HTML ส่งมาให้เราอ่าน
แต่สำหรับเรื่องการจัดการแอพพลิเคชั่น php ถูกออกแบบมาให้จัดการได้ง่ายกว่าครับ
ยืนยันครับ html เร็วกว่าครับ
คุณจะเทียบตอนสร้างไฟล์หน้าเว็บ หรือตอนอ่านไฟล์หน้าเว็บละ
ถ้าอ่านมาแสดงผลอะ html ย่อมเร็วกว่าอยู่แล้ว เพราะไม่ต้องประมวลผลภาษาจากฝั่งเซิร์ฟเวอร์เลย มันเป็นภาษาพื้นฐานในการจัดการแสดงผลออกทางหน้าเว็บ สามารถส่งมาแบบต้นฉบับมาให้บราวเซอร์ฝั่ง Client ทำการแสดงผลได้เลย
ส่วน php ถ้าอ่านมาแสดงผลจะช้ากว่า เพราะจะต้องผ่านกระบวนการประมวลผลภาษา php ที่ฝั่ง server ก่อน แล้วค่อยส่งผลมาให้ฝั่ง client เป็นรูปแบบภาษา html เพื่อให้สามารถแสดงผลบนบราวเซอร์ได้
อ้างถึงจาก: amazegu ใน 24 กุมภาพันธ์ 2013, 23:33:15
อ้างถึงจาก: newton ใน 24 กุมภาพันธ์ 2013, 23:27:36
ไม่รู้นะ อันนึงอ่านจากเนื้อที่ฮาร์ดดิส กะอีกอันอ่านจาก Buffer คิดว่าอ่านจาก Buffer น่าจะเร็วกว่า
หมายถึงว่า ถ้าเป็น html จะไม่มีระบบบัฟเฟอร์ช่วยในเรื่องความเร็วหรือครับ
เอ่อ ไม่ใช่อย่างนั้นครับ
ถ้าข้างในมีแต่ HTML Tag อย่างเดียว ไฟล์ php จะทำงานได้ช้ากว่าเพราะต้องไปแปลงจาก phpอีกที แต่ถ้าอ่านต่อกันหลายๆไฟล์ php จะทำงานได้เร็วกว่า เพราะถูกเปลี่ยนเป็น Buffer เก็บไว้แล้ว
พอเข้าใจไหม แต่ผมก็ไม่ชัวส์เท่าไหร่นะครับ ว่ามันเป็นอย่างนี้จริงๆไหม
อ้างถึงจาก: newton ใน 24 กุมภาพันธ์ 2013, 23:44:09
อ้างถึงจาก: amazegu ใน 24 กุมภาพันธ์ 2013, 23:33:15
อ้างถึงจาก: newton ใน 24 กุมภาพันธ์ 2013, 23:27:36
ไม่รู้นะ อันนึงอ่านจากเนื้อที่ฮาร์ดดิส กะอีกอันอ่านจาก Buffer คิดว่าอ่านจาก Buffer น่าจะเร็วกว่า
หมายถึงว่า ถ้าเป็น html จะไม่มีระบบบัฟเฟอร์ช่วยในเรื่องความเร็วหรือครับ
เอ่อ ไม่ใช่อย่างนั้นครับ
ถ้าข้างในมีแต่ HTML Tag อย่างเดียว ไฟล์ php จะทำงานได้ช้ากว่าเพราะต้องไปแปลงจาก phpอีกที แต่ถ้าอ่านต่อกันหลายๆไฟล์ php จะทำงานได้เร็วกว่า เพราะถูกเปลี่ยนเป็น Buffer เก็บไว้แล้ว
พอเข้าใจไหม แต่ผมก็ไม่ชัวส์เท่าไหร่นะครับ ว่ามันเป็นอย่างนี้จริงๆไหม
ไม่เกี่ยวกันเลย แลมั่วๆนะครับ เหอะๆ
อ้างถึงจาก: NaiTan ใน 24 กุมภาพันธ์ 2013, 23:50:38
อ้างถึงจาก: newton ใน 24 กุมภาพันธ์ 2013, 23:44:09
อ้างถึงจาก: amazegu ใน 24 กุมภาพันธ์ 2013, 23:33:15
อ้างถึงจาก: newton ใน 24 กุมภาพันธ์ 2013, 23:27:36
ไม่รู้นะ อันนึงอ่านจากเนื้อที่ฮาร์ดดิส กะอีกอันอ่านจาก Buffer คิดว่าอ่านจาก Buffer น่าจะเร็วกว่า
หมายถึงว่า ถ้าเป็น html จะไม่มีระบบบัฟเฟอร์ช่วยในเรื่องความเร็วหรือครับ
เอ่อ ไม่ใช่อย่างนั้นครับ
ถ้าข้างในมีแต่ HTML Tag อย่างเดียว ไฟล์ php จะทำงานได้ช้ากว่าเพราะต้องไปแปลงจาก phpอีกที แต่ถ้าอ่านต่อกันหลายๆไฟล์ php จะทำงานได้เร็วกว่า เพราะถูกเปลี่ยนเป็น Buffer เก็บไว้แล้ว
พอเข้าใจไหม แต่ผมก็ไม่ชัวส์เท่าไหร่นะครับ ว่ามันเป็นอย่างนี้จริงๆไหม
ไม่เกี่ยวกันเลย แลมั่วๆนะครับ เหอะๆ
:wanwan019: 555+ ผมคิดไปไกลเอาเรื่องดาต้าเบสมาพ่วงเข้าไปด้วย
เท่าที่เข้าเว็บมาหลายเว็บhtmlเร็วกว่านะ(ใช้ความรู้สึก)
ผมตอบให้เอง ไม่ต้องเถียงกัน
html เป็น output สุดท้าย ที่ browser ต้องนำมา rendor หน้าจอ เพื่อสร้าง Graphic User Interface ตามคำสั่งในภาษา html แบบนี้เราเรียกว่า static web page หรือ static html
php เป็นภาษาเขียนโปรแกรมแบบ interpreter คือ ต้อง compile (แปลภาษา) ทุกครั้งเมื่อเรียกให้ทำงาน และ gen html output ออกมา เพื่อส่งให้ browser นำไปประมวลผลต่อ แบบนี้เราเรียกว่า dynamic web page หรือ dynamic html
ซึ่งถ้าเทียบกันแบบตัวต่อตัว เช่น index.html กับ index.php
ตัว index.html ย่อมอ่านและส่งข้อมูลได้เร็วกว่า เพราะ ไม่ต้องประมวลผลใดๆ เนื่องจาก เป็น html output อยู่แล้ว webserver จะอ่านไฟล์ แล้วส่งกลับไปได้เลย
แต่ข้อเสียของ static html ก็มี เช่น ไม่สามารถเชื่อมต่อฐานข้อมูลได้ หรือ ประมวลผลซับซ้อนได้
จึงเป็นที่มาของการออกแบบ CGI (common gateway interface) ในสมัยแรกๆ (perl,c++) และพัฒนามาเป็น webserver modules (mod) ในภายหลัง เช่น php ที่เราใช้กันในปัจจุบัน (แต่ก็ยังมีเป็นรูปแบบอื่นๆ อีกเช่น fast-cgi เป็นต้น)
ถามว่า ถ้าอยากจะให้ php เร็วใกล้เคียงกับ html ทำได้ไหม
ขอตอบว่า ทำได้นะครับ และไม่ยากด้วย
คือ การใช้ caching มาช่วย ในการ cache html output ที่ถูก gen ไว้แล้ว สำหรับหน้าที่มี output ซ้ำๆ กัน จะทำให้ได้ความเร็วพอๆ กันเลย ต่างกันนิดเดียว แต่คุ้มค่ามากเพราะ บริหารจัดการกับข้อมูล (data) ได้ง่ายกว่า
อ้างถึงจาก: tdelphi ใน 25 กุมภาพันธ์ 2013, 00:30:15
ผมตอบให้เอง ไม่ต้องเถียงกัน
html เป็น output สุดท้าย ที่ browser ต้องนำมา rendor หน้าจอ เพื่อสร้าง Graphic User Interface ตามคำสั่งในภาษา html แบบนี้เราเรียกว่า static web page หรือ static html
php เป็นภาษาเขียนโปรแกรมแบบ interpreter คือ ต้อง compile (แปลภาษา) ทุกครั้งเมื่อเรียกให้ทำงาน และ gen html output ออกมา เพื่อส่งให้ browser นำไปประมวลผลต่อ แบบนี้เราเรียกว่า dynamic web page หรือ dynamic html
ซึ่งถ้าเทียบกันแบบตัวต่อตัว เช่น index.html กับ index.php
ตัว index.html ย่อมอ่านและส่งข้อมูลได้เร็วกว่า เพราะ ไม่ต้องประมวลผลใดๆ เนื่องจาก เป็น html output อยู่แล้ว webserver จะอ่านไฟล์ แล้วส่งกลับไปได้เลย
แต่ข้อเสียของ static html ก็มี เช่น ไม่สามารถเชื่อมต่อฐานข้อมูลได้ หรือ ประมวลผลซับซ้อนได้
จึงเป็นที่มาของการออกแบบ CGI (common gateway interface) ในสมัยแรกๆ (perl,c++) และพัฒนามาเป็น webserver modules (mod) ในภายหลัง เช่น php ที่เราใช้กันในปัจจุบัน (แต่ก็ยังมีเป็นรูปแบบอื่นๆ อีกเช่น fast-cgi เป็นต้น)
ถามว่า ถ้าอยากจะให้ php เร็วใกล้เคียงกับ html ทำได้ไหม
ขอตอบว่า ทำได้นะครับ และไม่ยากด้วย
คือ การใช้ caching มาช่วย ในการ cache html output ที่ถูก gen ไว้แล้ว สำหรับหน้าที่มี output ซ้ำๆ กัน จะทำให้ได้ความเร็วพอๆ กันเลย ต่างกันนิดเดียว แต่คุ้มค่ามากเพราะ บริหารจัดการกับข้อมูล (data) ได้ง่ายกว่า
อันนี้กระจ่างเลย ทำไมผมอธิบายแบบนี้ไม่ได้ :wanwan031:
อ้างถึงจาก: amazegu ใน 24 กุมภาพันธ์ 2013, 23:22:35
สมมติผมจะสร้างหน้าเว็บสัก1000หน้า สมมติว่าข้อมูลเหมือนกัน
html จะประมวลผลเร็วกว่าถูกต้องหรือเปล่าครับ แต่จะช้าตอนเขียนเพราะเราต้องสร้างไฟล์ทั้ง 1000 หน้า
ในขณะที่phpอาจจเขียนเพียงแค่ไฟล์เดียวแต่ใช้ query string เอา
ขอบคุณครับ :wanwan017: :wanwan017: :wanwan017:
html เร็วกว่า เนื้อหาโดนเก็บจากพี่ google เยอะกว่า ไวกว่า แต่เขียนช้ากว่า php เยอะ
อ้างถึงจาก: newton ใน 25 กุมภาพันธ์ 2013, 00:36:30
อ้างถึงจาก: tdelphi ใน 25 กุมภาพันธ์ 2013, 00:30:15
ผมตอบให้เอง ไม่ต้องเถียงกัน
html เป็น output สุดท้าย ที่ browser ต้องนำมา rendor หน้าจอ เพื่อสร้าง Graphic User Interface ตามคำสั่งในภาษา html แบบนี้เราเรียกว่า static web page หรือ static html
php เป็นภาษาเขียนโปรแกรมแบบ interpreter คือ ต้อง compile (แปลภาษา) ทุกครั้งเมื่อเรียกให้ทำงาน และ gen html output ออกมา เพื่อส่งให้ browser นำไปประมวลผลต่อ แบบนี้เราเรียกว่า dynamic web page หรือ dynamic html
ซึ่งถ้าเทียบกันแบบตัวต่อตัว เช่น index.html กับ index.php
ตัว index.html ย่อมอ่านและส่งข้อมูลได้เร็วกว่า เพราะ ไม่ต้องประมวลผลใดๆ เนื่องจาก เป็น html output อยู่แล้ว webserver จะอ่านไฟล์ แล้วส่งกลับไปได้เลย
แต่ข้อเสียของ static html ก็มี เช่น ไม่สามารถเชื่อมต่อฐานข้อมูลได้ หรือ ประมวลผลซับซ้อนได้
จึงเป็นที่มาของการออกแบบ CGI (common gateway interface) ในสมัยแรกๆ (perl,c++) และพัฒนามาเป็น webserver modules (mod) ในภายหลัง เช่น php ที่เราใช้กันในปัจจุบัน (แต่ก็ยังมีเป็นรูปแบบอื่นๆ อีกเช่น fast-cgi เป็นต้น)
ถามว่า ถ้าอยากจะให้ php เร็วใกล้เคียงกับ html ทำได้ไหม
ขอตอบว่า ทำได้นะครับ และไม่ยากด้วย
คือ การใช้ caching มาช่วย ในการ cache html output ที่ถูก gen ไว้แล้ว สำหรับหน้าที่มี output ซ้ำๆ กัน จะทำให้ได้ความเร็วพอๆ กันเลย ต่างกันนิดเดียว แต่คุ้มค่ามากเพราะ บริหารจัดการกับข้อมูล (data) ได้ง่ายกว่า
อันนี้กระจ่างเลย ทำไมผมอธิบายแบบนี้ไม่ได้ :wanwan031:
ขอบคุณครับ กระจ่างมาก ^^
ขอบคุณทุกท่านที่เข้าช่วยตอบคำถามครับ
หระจ่างเลย รวมถึงแอดมินที่ให่คำตอบชัดเจนมากครับ
มาเสริมให้
php ช้ากว่า html ไม่เท่าไหร่หรอกครับ แทบไม่เห็นความแตกต่างหรอก
ถ้าจะบอกว่า เห้ย php มันต้องประมวลผลก่อน ค่อยส่งเป็น output ออกไปนะ
ลองคิดดูว่าถ้า รายละเอียด output ที่เหมือนกัน php มันจะประมวลผลซับซ้อนแค่ไหนกันเชียว
ไอส่วนที่ทำให้ช้ามันคือ I/O อย่างเดียวแหละ เช่น พวก query หนักๆ เป็นต้น
แล้วถ้าสมมติจะแตก php 1 file เป็น html 1000 ไฟล์ เช่น product.php?id=xx กับ product001.html-product999.html
วิธีนี้ โยนทิ้งไปได้เลยครับ เพราะมันเสียเรื่อง scalability + maintenance ไปแล้ว product เยอะขนาดนั้น มันไม่ตอบโจทย์หรอกครับ แถมไปผิดทางด้วย ใช้ php cache + db memory engine ไวกว่าบรื๋อ
ถ้า care เรื่อง performace ก็ไปใช้ bytecode ครับ เฃ่น apc cache
เคยอ่านเจอประโยคนึงเกี่ยวกับ php เค้าบอกไว้ประมาณนี้
If you do care about performance. you have to use byte code.
If you don't use byte code. you don't care about performance.
มันขึ้นอยู่กับ server หรือ resource ที่คุณมี จะ 1000 หรือ 1000000 มันก็ไม่ต่างกัน ถ้าเป็นผม ผมจะใช้ php
html เร็วกว่าเพราะไม่ต้อง มีการประมวลผล แต่จริงๆก็ไม่เห็นความแตกต่างครับ ถ้าเขียนดีๆๆ
ขอบคุณทุกท่านอีกที ได้คสามรู้เพิ่มขึ้นเป็นกองเลยครับ
อ้างถึงจาก: tdelphi ใน 25 กุมภาพันธ์ 2013, 00:30:15
ผมตอบให้เอง ไม่ต้องเถียงกัน
html เป็น output สุดท้าย ที่ browser ต้องนำมา rendor หน้าจอ เพื่อสร้าง Graphic User Interface ตามคำสั่งในภาษา html แบบนี้เราเรียกว่า static web page หรือ static html
php เป็นภาษาเขียนโปรแกรมแบบ interpreter คือ ต้อง compile (แปลภาษา) ทุกครั้งเมื่อเรียกให้ทำงาน และ gen html output ออกมา เพื่อส่งให้ browser นำไปประมวลผลต่อ แบบนี้เราเรียกว่า dynamic web page หรือ dynamic html
ซึ่งถ้าเทียบกันแบบตัวต่อตัว เช่น index.html กับ index.php
ตัว index.html ย่อมอ่านและส่งข้อมูลได้เร็วกว่า เพราะ ไม่ต้องประมวลผลใดๆ เนื่องจาก เป็น html output อยู่แล้ว webserver จะอ่านไฟล์ แล้วส่งกลับไปได้เลย
แต่ข้อเสียของ static html ก็มี เช่น ไม่สามารถเชื่อมต่อฐานข้อมูลได้ หรือ ประมวลผลซับซ้อนได้
จึงเป็นที่มาของการออกแบบ CGI (common gateway interface) ในสมัยแรกๆ (perl,c++) และพัฒนามาเป็น webserver modules (mod) ในภายหลัง เช่น php ที่เราใช้กันในปัจจุบัน (แต่ก็ยังมีเป็นรูปแบบอื่นๆ อีกเช่น fast-cgi เป็นต้น)
ถามว่า ถ้าอยากจะให้ php เร็วใกล้เคียงกับ html ทำได้ไหม
ขอตอบว่า ทำได้นะครับ และไม่ยากด้วย
คือ การใช้ caching มาช่วย ในการ cache html output ที่ถูก gen ไว้แล้ว สำหรับหน้าที่มี output ซ้ำๆ กัน จะทำให้ได้ความเร็วพอๆ กันเลย ต่างกันนิดเดียว แต่คุ้มค่ามากเพราะ บริหารจัดการกับข้อมูล (data) ได้ง่ายกว่า
เสริมนิดนึงครับ ผมว่า PHP ที่เราใช้อยู่แทบจะ 99.9 % ใช้แค่ Interpreter นะครับ ไม่ใช่ Programming ชนิด Compile คือมันอ่านกันชนิดบรรทัดต่อบรรทัด
ส่วนที่เป็นชนิด Compiler คือตัวที่เราติดตั้งให้ทำงานร่วมกับ Apache หรือ PHP Engine
ขออธิบายในเชิงสถาปัตยกรรมของ Application นะครับ หากตัดส่วนฐานข้อมูลออก สิ่งที่ทำงานกับเราคือ 2 ตัว Apache และ PHP Engine
Apache นี่ทำงานในส่วนของ Presentation Tier ทำการจัดการ HTML เพื่อนำเสนอไปยัง Browser ในภาษาที่ Browser เข้าใจ แล้วก็ดูแลในส่วนของ Request ต่างๆ ที่เข้ามายัง Server ซึ่งหลักๆ ก็คือ HTTP Request จาก browser
PHP Engine นี่ทำงานในส่วนของ Business Logic ทำการ Interpret เอกสาร PHP เป็น HTML แล้วส่งไปยัง Presentation Tier
เรามาดูกันในชั้น OSI Layer ที่ต่ำกว่า Application Layer กับ App Achitecture ดีกว่าครับ ว่ามันเกิดอะไรขึ้นตามสภาพการณ์นั้น หากพิจารณาความเร็วที่ว่าในเชิงของระยะเวลาทั้งหมดตั้งแต่ Request ไปกระทั่ว receive ฉะนั้น OSI Layer ใช้เวลาเท่ากัน ตัดเข้ามาที่ Apache และ PHP เลย
Access Disk
กรณี HTML 1 kB/file บน Server ไฮโซมี SSD 1000 ไฟล์ กรณีดีสุดใช้ Seek Time + Data Transfer Time = 0.1ms+1000(1/300) ms = 3.4 ms (Data Transfer Rate = 300 kB/ms = 300 MB/s)
กรณี PHP 1kB/file บน Server เดียวกันที่ใช้ Loop วนสร้าง HTML code มีการ Access ฮาร์ดดิสค์ 1 ครั้งและ Transfer 1 ไฟล์ = 0.1ms +1(1/300 ) ms = 0.1 ms
Access Memory
กรณี HTML ความเร็ว Data Transfer ของ RAM = 6400 MB/s = 6.4 MB/ms ฉะนั้นไฟล์ขนาดนั้น ไม่มีผลต่อแรม เพราะไวกว่า Harddisk มากกว่า 20 เท่าอย่างน้อย ฉะนั้นเวลารวมที่ส่งทุกอย่างไปยัง HTTP Response คือ 3.4 ms
กรณี PHP Engine มี Data Transfer Rate เดียวกัน ต้องส่งให้ CPU ประมวณและ Gen HTML ขนาด 1000 kB ~ 1 MB สมมติ Engine Idle อยู่บน Memory มันต้อง Handle ข้อมูลปริมาณ worse case 5 เท่าของขนาดข้อมูลคือ 5 MB ใช้เวลา 0.8 ms สิริเวลารวมคือ 0.8+0.1 ms = 0.9 ms สำหรับส่งข้อมูลไปยัง HTTP Response แต่จริงๆ แล้วถึง Environment จะเกิดบริบทอื่นๆ อีกก็จะเห็นได้ว่าในกรณี PHP ยังเร็วกว่าถึง 3 เท่ากว่าๆ ไม่ต้องนับเวลา Write DATA เพราะทำงานคนละส่วน
ส่วนกรณี Query ขึ้นมา ผมไม่แน่ใจว่าหมายถึงอะไร จากฐานข้อมูลหรือเปล่า ถ้าแบบนั้นคงต้องไปสร้าง Socket ติดต่อกับฐานข้อมูลโดยตรงแล้วหละครับเพราะ HTML ทำไม่ได้
อ้างถึงจาก: normalblue ใน 25 กุมภาพันธ์ 2013, 16:25:36
อ้างถึงจาก: tdelphi ใน 25 กุมภาพันธ์ 2013, 00:30:15
ผมตอบให้เอง ไม่ต้องเถียงกัน
html เป็น output สุดท้าย ที่ browser ต้องนำมา rendor หน้าจอ เพื่อสร้าง Graphic User Interface ตามคำสั่งในภาษา html แบบนี้เราเรียกว่า static web page หรือ static html
php เป็นภาษาเขียนโปรแกรมแบบ interpreter คือ ต้อง compile (แปลภาษา) ทุกครั้งเมื่อเรียกให้ทำงาน และ gen html output ออกมา เพื่อส่งให้ browser นำไปประมวลผลต่อ แบบนี้เราเรียกว่า dynamic web page หรือ dynamic html
ซึ่งถ้าเทียบกันแบบตัวต่อตัว เช่น index.html กับ index.php
ตัว index.html ย่อมอ่านและส่งข้อมูลได้เร็วกว่า เพราะ ไม่ต้องประมวลผลใดๆ เนื่องจาก เป็น html output อยู่แล้ว webserver จะอ่านไฟล์ แล้วส่งกลับไปได้เลย
แต่ข้อเสียของ static html ก็มี เช่น ไม่สามารถเชื่อมต่อฐานข้อมูลได้ หรือ ประมวลผลซับซ้อนได้
จึงเป็นที่มาของการออกแบบ CGI (common gateway interface) ในสมัยแรกๆ (perl,c++) และพัฒนามาเป็น webserver modules (mod) ในภายหลัง เช่น php ที่เราใช้กันในปัจจุบัน (แต่ก็ยังมีเป็นรูปแบบอื่นๆ อีกเช่น fast-cgi เป็นต้น)
ถามว่า ถ้าอยากจะให้ php เร็วใกล้เคียงกับ html ทำได้ไหม
ขอตอบว่า ทำได้นะครับ และไม่ยากด้วย
คือ การใช้ caching มาช่วย ในการ cache html output ที่ถูก gen ไว้แล้ว สำหรับหน้าที่มี output ซ้ำๆ กัน จะทำให้ได้ความเร็วพอๆ กันเลย ต่างกันนิดเดียว แต่คุ้มค่ามากเพราะ บริหารจัดการกับข้อมูล (data) ได้ง่ายกว่า
เสริมนิดนึงครับ ผมว่า PHP ที่เราใช้อยู่แทบจะ 99.9 % ใช้แค่ Interpreter นะครับ ไม่ใช่ Programming ชนิด Compile คือมันอ่านกันชนิดบรรทัดต่อบรรทัด
ส่วนที่เป็นชนิด Compiler คือตัวที่เราติดตั้งให้ทำงานร่วมกับ Apache หรือ PHP Engine
ขออธิบายในเชิงสถาปัตยกรรมของ Application นะครับ หากตัดส่วนฐานข้อมูลออก สิ่งที่ทำงานกับเราคือ 2 ตัว Apache และ PHP Engine
Apache นี่ทำงานในส่วนของ Presentation Tier ทำการจัดการ HTML เพื่อนำเสนอไปยัง Browser ในภาษาที่ Browser เข้าใจ แล้วก็ดูแลในส่วนของ Request ต่างๆ ที่เข้ามายัง Server ซึ่งหลักๆ ก็คือ HTTP Request จาก browser
PHP Engine นี่ทำงานในส่วนของ Business Logic ทำการ Interpret เอกสาร PHP เป็น HTML แล้วส่งไปยัง Presentation Tier
เรามาดูกันในชั้น OSI Layer ที่ต่ำกว่า Application Layer กับ App Achitecture ดีกว่าครับ ว่ามันเกิดอะไรขึ้นตามสภาพการณ์นั้น หากพิจารณาความเร็วที่ว่าในเชิงของระยะเวลาทั้งหมดตั้งแต่ Request ไปกระทั่ว receive ฉะนั้น OSI Layer ใช้เวลาเท่ากัน ตัดเข้ามาที่ Apache และ PHP เลย
Access Disk
กรณี HTML 1 kB/file บน Server ไฮโซมี SSD 1000 ไฟล์ กรณีดีสุดใช้ Seek Time + Data Transfer Time = 0.1ms+1000(1/300) ms = 3.4 ms (Data Transfer Rate = 300 kB/ms = 300 MB/s)
กรณี PHP 1kB/file บน Server เดียวกันที่ใช้ Loop วนสร้าง HTML code มีการ Access ฮาร์ดดิสค์ 1 ครั้งและ Transfer 1 ไฟล์ = 0.1ms +1(1/300 ) ms = 0.1 ms
Access Memory
กรณี HTML ความเร็ว Data Transfer ของ RAM = 6400 MB/s = 6.4 MB/ms ฉะนั้นไฟล์ขนาดนั้น ไม่มีผลต่อแรม เพราะไวกว่า Harddisk มากกว่า 20 เท่าอย่างน้อย ฉะนั้นเวลารวมที่ส่งทุกอย่างไปยัง HTTP Response คือ 3.4 ms
กรณี PHP Engine มี Data Transfer Rate เดียวกัน ต้องส่งให้ CPU ประมวณและ Gen HTML ขนาด 1000 kB ~ 1 MB สมมติ Engine Idle อยู่บน Memory มันต้อง Handle ข้อมูลปริมาณ worse case 5 เท่าของขนาดข้อมูลคือ 5 MB ใช้เวลา 0.8 ms สิริเวลารวมคือ 0.8+0.1 ms = 0.9 ms สำหรับส่งข้อมูลไปยัง HTTP Response แต่จริงๆ แล้วถึง Environment จะเกิดบริบทอื่นๆ อีกก็จะเห็นได้ว่าในกรณี PHP ยังเร็วกว่าถึง 3 เท่ากว่าๆ ไม่ต้องนับเวลา Write DATA เพราะทำงานคนละส่วน
ส่วนกรณี Query ขึ้นมา ผมไม่แน่ใจว่าหมายถึงอะไร จากฐานข้อมูลหรือเปล่า ถ้าแบบนั้นคงต้องไปสร้าง Socket ติดต่อกับฐานข้อมูลโดยตรงแล้วหละครับเพราะ HTML ทำไม่ได้
ความรู้ใหม่
อ้างถึงจาก: amazegu ใน 24 กุมภาพันธ์ 2013, 23:22:35
สมมติผมจะสร้างหน้าเว็บสัก1000หน้า สมมติว่าข้อมูลเหมือนกัน
html จะประมวลผลเร็วกว่าถูกต้องหรือเปล่าครับ แต่จะช้าตอนเขียนเพราะเราต้องสร้างไฟล์ทั้ง 1000 หน้า
ในขณะที่phpอาจจเขียนเพียงแค่ไฟล์เดียวแต่ใช้ query string เอา
ขอบคุณครับ :wanwan017: :wanwan017: :wanwan017:
ถูกต้องแล้วคร๊าบ :wanwan020:
้html เร็วกว่า php เพราะไม่ต้องรอประมวลผลจาก Server
แต่ถ้า php ไม่ได้มีคำสั่งประมวลผลข้อมูลอะไรมากมาย
ความเร็วไม่ต่างกันครับ
html เร็วกว่าแน่นอน แต่ php ถึงจะช้ากว่า ถ้าเขียนโปรแกรมดี ๆ ก็อาจจะช้ากว่าแต่ไม่ถึงขนาดหงุดหงิด เดี๋ยวนี้เครื่องเซิฟเวอร์ทำงานเร็วมากครับ
ถ้าเนตไม่มีปัญหาควรจะโหลดหน้าเพจให้เสร็จภายใน 5 วินาทีจะดีมาก ๆ แต่ถ้ามีรูปที่น่าดูมาก ๆ คนส่วนใหญ่จะรอได้ครับ
PHP เสียงต่อการโดน SQL INjection มากครับ
อ้างถึงจาก: fil22t ใน 28 กุมภาพันธ์ 2013, 18:15:27
PHP เสียงต่อการโดน SQL INjection มากครับ
escape char ก็ไม่น่าจะโดนแล้วหนิ
หรือมีวิธีลึกซึ้งกว่านั้น