Tags:
Topics: 
Node Thumbnail

นับเป็นเวลากว่าสองปีแล้วตั้งแต่ Gangnam Style ได้รับการเผยแพร่ไปบน YouTube คลิปนี้ก็คงครองตำแหน่งคลิปที่มียอดวิวสูงสุดตลอดกาลของ YouTube มาอย่างยาวนานและในที่สุดคลิปนี้ก็ได้ทำสถิติอีกครั้งด้วยการทำยอดวิวทะลุค่าสูงสุดของตัวนับยอดวิว 2,147,483,647 ครั้งไปแล้ว

คนที่เรียนเขียนโปรแกรมมาอาจจะพอเข้าใจว่าเกิดอะไรขึ้น หากอธิบายง่ายๆ ก็คือก่อนหน้านี้ YouTube ได้เก็บค่าของยอดวิวไว้ด้วยตัวแปรประเภท signed int ขนาด 32 บิตซึ่งจะให้ค่าในช่วง -2,147,483,648 ถึง 2,147,483,647 ยอดวิวที่มากเกินกว่านี้จะทะลุช่วงดังกล่าวไปจะเกิดการโอเวอร์โฟลว์ส่งผลให้ค่าของยอดวิวกลับไปเป็นติดลบได้

ในตอนแรก YouTube ไม่คาดคิดว่าจะมีคลิปใดที่มียอดวิวสูงขนาดนี้จึงเก็บยอดวิวในตัวแปรแบบ signed int แต่ก็ได้แก้ไขระบบเพื่อป้องกันปัญหานี้ไปหลังจากคลิป Gangnam Style ได้รับความนิยมมากขึ้นจนมีแนวโน้มว่าจะทะลุช่วงดังกล่าวได้โดยไม่มีการเปิดเผยรายละเอียดในการแก้ไขแต่อย่างใด
เพื่อเป็นของขวัญเล็กๆ น้อยๆ ทาง YouTube ก็ได้ใส่ลูกเล่นไว้ในตัวนับยอดวิวของคลิปนี้ไว้ด้วย หากใครอยากรู้ว่าเป็นอะไรก็ลองเอาเมาส์ไปวางไว้เหนือตัวนับยอดวิวดูครับ

สุดท้ายนี้ใครเคยมีความทรงจำทั้งดีและไม่ดีเกี่ยวกับ integer overflow นี่ก็เอามาแบ่งปันกันในคอมเม้นท์ได้นะครับ

ที่มา: YouTube Google+

Get latest news from Blognone

Comments

By: hisoft
ContributorWindows PhoneWindows
on 3 December 2014 - 10:03 #769009
hisoft's picture

โอ้วววววว (- -)d

By: nutmos
WriteriPhoneUbuntuWindows
on 3 December 2014 - 10:07 #769011

พูดถึง Integer Overflow ฝันร้ายของผมตอนเจอโปรแกรมบึ้มเมื่อใส่ค่าเยอะๆ ก็กลับมา T-T

By: Hadakung
iPhoneWindows PhoneAndroidWindows
on 3 December 2014 - 10:08 #769013

มีครับ ทำข้อสอบผิด เพราะนับ overflow ผิด TT

By: itpcc
ContributoriPhoneRed HatUbuntu
on 3 December 2014 - 10:08 #769014
itpcc's picture

หลายครั้งผมก็ต้องเลี่ยงมาทำ Big number แต่ผมก็เกลียดมันมากๆ เลยล่ะ เซ็งแปป T___T


บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P

By: sakuraba
Windows PhoneWindows
on 3 December 2014 - 10:20 #769023
sakuraba's picture

ยอดวิวขนาดนี้ ได้เงินกี่บาทครับ

By: Mikamura
AndroidUbuntuWindows
on 3 December 2014 - 10:21 #769024

งงว่ายอดวิวมันน่าจะเป็นจำนวนเต็มบวกทั้งหมดนี่ครับ (ยอดวิวไม่น่าจะเป็นจำนวนติดลบได้) ทำไมถึงไม่ใช่ Unsigned Int ล่ะ? อย่างน้อยก็เพิ่มได้อีกเท่าตัวนึง

By: wiennat
Writer
on 3 December 2014 - 10:23 #769029 Reply to:769024

มีคนเดาว่าเพราะ Google ไม่ชอบ unsigned int ครับ

http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Integer_Types


onedd.net

By: mr_tawan
ContributoriPhoneAndroidWindows
on 3 December 2014 - 12:06 #769079 Reply to:769029
mr_tawan's picture

ที่จริงผู้เชี่ยวชาญส่วนใหญ่ก็ไม่แนะนำให้ใช้ unsigned int กัน (เป็น premature optimization ประเภทนึง) เพราะหลาย ๆ ครั้งเราก็ไม่รู้ว่าเราจะต้องใช้ค่าลบกับตัวแปรตัวนั้นเมื่อไหร่

ในขณะที่แค่แก้จาก int เป็น long มีผลกระทบน้อยกว่าครับ


  • 9tawan.net บล็อกส่วนตัวฮับ
By: 21Aki
ContributorAndroidWindows
on 3 December 2014 - 10:51 #769048 Reply to:769024
21Aki's picture

จริงครับ ตั้งแต่โดนครั้งแรก ก็จำไว้เลยว่า ตัวไหนติดลบไม่ได้ใช้ unsign

By: m3rlinez on 3 December 2014 - 15:40 #769157 Reply to:769024

ถ้า memory ไม่ได้มีจำกัดมากๆๆๆ การประหยัดพื้นที่ไปแค่ 1 บิต ดูจะไม่ค่อยคุ้มแลกกับการต้องมาคอยระวังการกรณีพิเศษของการใช้ unsigned ครับ อีกอย่างคือถ้าว่ากันยาวๆแล้ว การได้พื้นที่เพิ่มมาแค่ 1 บิต ถึงจะดูเหมือนเป็นเท่าตัวนึง แต่ถ้าระบบโตเร็วแบบก้าวกระโดดก็คงซื้อเวลาได้ไม่นานเท่าไหร่ ถ้าคิดว่าจะแตะขอบ int32 แน่ๆ ก็ใช้ int64 ไปเลยดีกว่า

(จำๆเค้ามาตอบอ่ะนะ)

By: wiennat
Writer
on 3 December 2014 - 16:12 #769166 Reply to:769157

ชาบูววววววว


onedd.net

By: wiennat
Writer
on 3 December 2014 - 10:21 #769025

ผมเคยเจอตอนเล่น Transport Tycoon แล้วมีเงินเยอะเกิน กลายเป็นเงินติดลบ สร้างทางรถไฟมาตั้งนานเกมโอเวอร์ไปเลยในเดือนเดียว


onedd.net

By: Aize
ContributorWindows PhoneAndroidWindows
on 3 December 2014 - 10:34 #769039
Aize's picture

คิดถึงสมั้ยแฮกเกมเฟสบุ๊ก แฮกคะแนน แฮกเงินกันจนเลขติดลบ 555555


The Dream hacker..

By: vitnu
iPhone
on 3 December 2014 - 11:03 #769057

ถึงจะมียอดวิวเยอะ แต่เพลงนี้ก็ดับไปแล้ว

By: put4558350
ContributorAndroidUbuntuWindows
on 3 December 2014 - 15:03 #769147 Reply to:769057
put4558350's picture

แต่ ... ยอด view ยังคงเพิ่มอยู่ แปลว่ายังสร้างรายใด้อยู่ครับ

โลกนี้มีเกิดย่อมมีดับเป็นปรกติครับ


samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo

By: terap
Windows PhoneAndroidRed HatUbuntu
on 3 December 2014 - 12:10 #769083
terap's picture

ทำตัวเลขหลายๆ ชุด เมื่อชุดแรกถึงที่กำหนดให้ต่อด้วยชุดถัดไปเรื่อยๆ

By: cmmadnat
iPhoneUbuntuWindows
on 3 December 2014 - 14:33 #769138

Long, double, bigdecimal จัดซะ

By: jaideejung007
ContributorWindows PhoneWindows
on 3 December 2014 - 14:59 #769146
jaideejung007's picture

แต่ก่อน YouTube มีหน้าให้เข้าไปดูยอดวิวสูงสุดตลอดกาล

ทำไมเดี๋ยวนี้ถึงไม่มีแล้วครับ หรือมีทางเข้าทางอื่นเหรอครับ รบกวนขอวาร์ปทีครับ

อยากจะรู้ว่า อันดับ 2 3 4 5 6 7 8 9 10 คือคลิปอะไร

ขอบคุณฮะ

ปล. หลังจากข่าวนี้ออกไป ยอดวิวคงกระฉู๊ดขึ้นอย่างแน่นอน

By: PJ_Johnny
iPhoneWindows PhoneAndroidWindows
on 3 December 2014 - 15:21 #769151
PJ_Johnny's picture

อันดับสองก็คือเพลง Baby ของจัสติน อดีตที่หนึ่ง อันดับสามคือ on the floor

By: pepebonus
iPhoneWindows
on 3 December 2014 - 20:42 #769271

Gangnam Style พิมพ์แบบนี้นะคะ ไม่ใช่ Gangnum Style

By: wiennat
Writer
on 4 December 2014 - 10:12 #769421 Reply to:769271

แก้แล้วครับ ขอบคุณมากครับ


onedd.net

By: wichate
Android
on 3 December 2014 - 21:34 #769279

อยากให้รองรับได้เยอะๆ ใช้ text ไปเลย 55+

By: hisoft
ContributorWindows PhoneWindows
on 3 December 2014 - 21:36 #769281 Reply to:769279
hisoft's picture

นับแบบดั้งเดิมเลยครับ หนึ่งวิวหนึ่งขีด ;)

By: inkirby
ContributoriPhoneAndroidIn Love
on 4 December 2014 - 00:15 #769318 Reply to:769281
inkirby's picture

ทะลุขอบจอจนสกรอลล์ไม่เจอจุดจบกันเลยทีนี้


Dream high, work hard.