整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          25 歲的老 Delphi,還值得程序員入手嗎?

          25 歲的老 Delphi,還值得程序員入手嗎?

          elphi 25歲了!盡管它不再是很多 Windows 開發的明顯選擇,但它的“長壽”證明了其性能之高。回想起來,為什么 Delphi 當初未能占領 Windows 開發市場的更多份額呢?本文細數以 Delphi 為首的編程語言以及軟件創作系統所經歷的 25 年風雨,以此祭奠老 Delphi 程序員們已逝的青春。

          作者 | Jon Lennart Aasenden

          譯者 | 彎月,責編 | 郭芮

          出品 | CSDN(ID:CSDNnews)

          以下為譯文:

          我想通過本文細數以Delphi為首的編程語言以及軟件創作系統所經歷的25年風雨。我應該從哪里開始呢?史無前例的面向對象?事件驅動架構?蓬勃發展的組件市場?還是從x86匯編語言擴展到高性能ARM移動應用程序的技術?

          我不想簡單地列出各項技術,而是想以一種更加個人化的方式來撰寫這篇Delphi的文章。畢竟Delphi 25周歲了,人們喜歡在生日這天舉行演講和反思:回顧過往的一切,同時堅定地展望未來。

          簡而言之,我只能通過本文傳達在我作為軟件開發人員的一生中Delphi給予我的寶貴價值,而且我相信數百萬的Delphi開發人員感同身受。

          我希望通過這篇文章,將我的想法傳給現在剛開始學習Delphi的許多學生。希望為你們的學習提供一些有營養的見解,并希望你們能和我一樣深愛Delphi。

          Delphi 的起源

          1990年初,計算機市場與今天相比有著截然不同的格局。在斯堪的納維亞半島和北歐,Commodore和IBM等公司仍然占據著家用臺式機的市場。但是在短短的三年之內,IBM的OS/2就被微軟的Windows淘汰了,而曾經的巨頭Commodore也陷入了其不可避免的痛苦局面,這兩家都無法或不愿意適應當時興起的新業務模式。在同樣動蕩的1993年,微軟和IBM正式分道揚鑣,IBM轉向了大型機及其PPC芯片組體系結構,后者在接下來的十年甚至更長的時間里一直是Macintosh計算機的核心。

          我提到這些公司的原因是為了讓你了解當時市場的混亂狀況。對于像我這樣的年輕學生來說,根本不可能知道應該在哪種技術上投入精力。我的編碼生涯是從Commodore Amiga版本的Turbo Pascal開始的,該版本由英國公司Hi-Soft發布,稱為High-Speed Pascal。當時,我還是工程系的新生,在學校里,我們主要使用Turbo Pascal和DBase。可惜當時的PC機非常昂貴,我沒錢花4000美元購買PC,于是花了700美元買了一臺Commodore Amiga。我覺得,Pascal編譯器的價格約為,這對于一個努力維持生計的窮學生來說,可以省不少錢。

          1994年的時候,我使用的編譯器不能用了,很明顯Commodore再也未能東山再起。值得慶幸的是,我忍無可忍,終于下血本買了第一臺帶有Turbo Pascal的PC機。我很高興買了這臺機器,因為第二年Delphi就發布了。

          每當我提到Delphi曾經以及將來對我的影響,我一點都沒有夸張。Delphi自問世以來,對整個軟件開發行業的影響是巨大的。Delphi以及在此之前的Turbo Pascal,開創了許多當今開發人員認為理所當然的技術,甚至包括快速應用程序開發(Rapid Application Development,即RAD)周期本身。在Delphi之前,人們的目光都聚焦在投資回報率(ROI)和上市時間(TTM)上,編程語言帶來的變化微乎其微。但是,當Delphi出現以后,時間和金錢的投入都非常清晰明確了,因為Delphi帶來了顛覆性的變革(對于其競爭對手來說)。

          因此,在90年代初期技術的戰國時代,Delphi成為了最大的贏家。當之無愧。

          飛躍發展

          思想和觀念的進化概念一直讓我十分著迷。我經常在文章中提到這個概念。

          我們總是認為進化是一個緩慢、漸進和線性的過程。但是當涉及到想法,尤其是技術時,我的經驗是,好的技術會以快速、出乎意料的飛躍向前發展。孵化時間可能會有所不同,但最終在某種力量的推動下就會飛速向前。

          1995年,Delphi進入市場時遠遠領先于競爭對手,人們發現Delphi很難學。但事件驅動編程的概念已經出現很長時間了(例如Visual Basic),因此Delphi并不是在真空中孵化的。雖然有一些C/C ++編譯器也發展出了Delphi帶進大眾視野的語言功能,但是它們都缺乏Delphi的簡單性和優雅性。

          在伴隨我長大的Commodore機器上,有很多軟件支持拖放式表單設計,而且在某種程度上編程也采用了類似的方法(盡管處于更原始的狀態)。但是,Delph的獨特之處在于,沒有公司將這些想法融合為一個連貫的整體。我從未見過VCL框架之類的東西,或能夠與你的代碼如此緊密地集成的IDE。

          一款功能強大的編譯器將所有這些元素組合在一起,比其他的編譯器要早很多年。如今的C/C++編譯器(從Pascal開發人員的角度來看)絕對非常強大,但是視覺設計在很大程度上需要獨立完成(Borland C/C++具有類似OWL的框架,因此UI可以通過代碼完成) 。因此,在競爭產品中,例如Wacom(1984~2010)或Storm C++(1995~2016),你需要在一個程序中創建UI,然后將這些設計作為資源文件導入到C/C ++項目中,與如今的蘋果.nib文件沒有什么不同。只有完成這些,你才可以開始構建程序。有的代碼可能只需5分鐘,而有的代碼中該過程很容易超過5個小時。即使是很小的UI改動,也需要花幾分鐘才能生成代碼和做鏈接。

          Delphi強大的編譯器和智能鏈接器可以將這個過程減少到幾秒鐘。這是十多年來世界上最快的編譯器。它的速度如此之快,以至于大多數開發人員將編譯功能當作一種快速檢查繁瑣的語法的方式。這對于其他語言來說都是不可想象的。

          面向對象

          毫無疑問,Delphi邁入了一個更高層的領域,即真正意義上的面向對象編程。在這之前,Pascal對面向對象還有點三心二意。Turbo Pascal 5.5是一流的DOS工具包(市場上稱為“帶對象的Turbo Pascal”),但其實它的對象只不過是帶有程序的記錄類型。除非你精通C++,否則你必須使用Modula II或Smalltalk之類的語言,才能獲得Delphi提供的那種對象模型。但是,它們都缺乏Delphi擅長的RAD(快速應用程序開發)層。

          整個80年代和90年代初期,在Delphi的推動下,所有播種和孵化的技術都飛躍發展成了系統,面向對象成了語言本身基本的特征,而不是作為附加功能使用。由于Delphi程序在完整的VMT(虛擬方法表)下運行,因此開發人員可以享受繼承、虛擬和抽象方法以及可靠的數據封裝——所有這些均來自于易學、易用和競爭激烈的語言。

          錦上添花的是Delphi注重視覺編程。你可以將一個按鈕拽到窗體上,然后雙擊填寫事件處理程序,這個過程無需離開IDE或切換選項卡。之前已有其他編譯器做到了這一點,但Delphi是真正的本地編譯器,而不是通過字節碼或托管系統讓IDE按照自己的規則進行操作(以性能為代價)。Delphi是首個達到C/C ++級別的性能和深度(多虧了Object Pascal的易學和優雅)的語言。你還可以與Pascal并排編寫機器代碼,所以說Delphi與Visual Basic或SmallTalk是完全不同的級別。一夜之間Visual Basic從英雄變成了無名小卒。

          現代Delphi與C/C++并肩,但仍非常重視可視化OOP編程

          關于這一點,Object Pascal擁有與C/C++并駕齊驅的深度和功能,這是因為Delphi的視覺和非視覺組件庫都是由Delphi制作的。換句話說,你沒有強制依賴第三方提供的組件(這是競爭解決方案的慣用方法)。任何人都可以坐下來編寫自己的組件;然后以可執行文件或源代碼的形式打包出售。因此,組件市場蓬勃發展,導致競爭對手黯然失色。

          我甚至想說,如果Delphi是在IBM OS/2上發布的,那么就可以拯救這個平臺。意義非凡。

          大學最后一年,我們的課程使用了Visual Basic,但其實背后我們都在使用Delphi。實際上,我從未參加過任何微軟認證課程,而且只學習了一些基本知識就考出了好成績。那時,我已經在用Delphi編寫COM組件,遠遠超出了課程范圍。

          我至今仍記得有一天老師將課程放在一邊,單獨給我們講起了Delphi。他是一位充滿熱情的開發人員,將Delphi的包裝盒放在我們面前時,他幾乎無法抑制自己的激動心情。我們睜大了眼睛,張著嘴,津津有味地聽著有關這個奇妙的新系統的所有知識。充滿熱情的思想涌現出了很多新想法。那真是一個奇跡。

          大學畢業后,我曾有機會從事教師的工作,但我拒絕了。除了Delphi之外,什么都不教的想法感覺像是倒退了一步。

          Delphi教育

          在結束了大學的學習后,頭幾年里我一直在擔任技術新聞記者,同時也在提高自己的開發技術。當再次回到大學學習時,Delphi已被列入了教學大綱。如今,年輕的開發人員常常在問為什么RAD Studio同時包含Delphi和C++ Builder,其實這種結合構成了傳統軟件工程學位的骨干。這種趨勢一直持續到2002年,而且如今世界部分地區仍然如此。

          這兩種語言并排發展,而且共同擁有一段1970年代的輝煌歷史。盡管許多開發人員錯誤地認為Object Pascal很老,C/ C++是現代編程語言,但實際上C與Pascal屬于同一個時代。就像Delphi并非憑空發展一樣,C也不是。而BrianKernigan和Dennis Richie的標準也是基于大型機行業已有(且經常相互沖突)的工具。

          因此,作為編程語言,Pascal和C以及進一步的Object Pascal和C++都是并排發展起來的,盡管它們之間的正式間隔是三年。

          值得慶幸的是,Embarcadero繼續出色地完成了Delphi產品的最新功能。多年來,泛型、匿名方法、輔助類、屬性等功能已發展成為該語言的一部分。在這些工作的推動下,我們看到了Delphi的市場采用非常穩定。無論是使用過其他語言的成熟開發人員,還是新手開發人員都能感受到Delphi的生產力和強大。

          振奮人心的一件事是,Delphi和C++ Builder再次在教育領域大展手腳。在擔任Embarcadero的SC期間,我幫助挪威的兩所大學建立了社區版。此外,在蘇格蘭、意大利、葡萄牙、南美和俄羅斯的一些機構Delphi也在蓬勃發展。

          挪威的老師都很激動,因為他們在Borland時代教過Delphi。就像一位教授款款而談:“就像問候多年的老朋友一樣。”

          上個月Embarcadero宣布,土耳其將免費向其學生提供Delphi課程。估計有100萬學生參加,這真是個好消息!對于學生而言,最重要的還是領悟可靠、現代和原型編程語言的優勢。這些能讓他們成長為更好的開發人員,就像我與數不盡的其他人一樣。

          軟件工程原理

          我不想離題太遠,只想簡單地說說原型編程語言。這是一個專屬領域,除了Delphi和C++ Builder之外,該領域只有一個其他的編程語言(盡管Rust絕對應該位列其中)。

          原型語言是體現計算基本原理的一種語言。這些原則不受產品和市場變化等因素的影響,因為它們代表了計算機的基礎邏輯,有點像物理定律。在撰寫本文之際,只有匯編語言、C/C ++和Object Pascal才是原型語言。而且匯編語言是其他一切語言的基礎。

          另一種語言稱為樂觀語言,這個名字源自數據庫技術的術語(例如,樂觀鎖定模型)。雖然我不打算在本文中討論為何一門語言被稱為樂觀,但總的來說,樂觀描述的是一種語言對于現有基礎結構的依賴性的大小(因此被稱為樂觀,其意思就是認為存在某些特定條件是理所當然的)。匯編、C和Pascal是編寫操作系統或內核的語言。從根本上講,它們對操作系統的依賴性不如Java或JavaScript那么強。

          從低級編程到高級編程,再到高級面向對象,Delphi在廣泛的領域都有出色的表現

          有好幾種操作系統都是用Pascal編寫的。最有名的系統莫過于蘋果經典的Macintosh操作系統,該操作系統跨68k和PPC處理器。盡管毫無疑問,C/C++是這類工作的主要語言,但事實上,蘋果一直將Pascal作為核心語言,直到1996年史蒂夫·喬布斯回歸(喬布斯從NeXT帶來了Objective-C和Unix),這足以證明Pascal的強大和多功能性。自那時以來,Pascal的多功能性得到了極大的擴展。

          我還想說說Ultibo,它是當今物聯網設備上非常流行的嵌入式系統。該系統包含一個完全用Object Pascal編寫的內核,以及構建現代嵌入式系統所需的所有基本組件。從USB堆棧到網絡的所有功能全是用Object Pascal編寫的。

          雖然該系統使用的是受Delphi啟發的開源編譯器(FreePascal,過去曾被Delphi作為早期的移動支持),但是Ultibo的許多代碼都源自Delphi社區。

          坦白來講,對于樂觀一族的語言來說,這種工作是不可能的,或者至少是非常不切實際的。你需要一個能夠覆蓋從匯編語言到高級構造的所有東西,才能真正在這個級別上開展工作。你不能用JavaScript編寫內核,因為它具有大量的依賴關系。

          經過25年的發展,Delphi像以往一樣強大且通用。關于Delphi的討論有很多層次,本文到目前為止,我們只說到了一些皮毛。

          感言

          在生日祝酒之前,我要先講幾句。

          Delphi就像我們的家庭成員一樣,這么多年來,我把Delphi當成了血肉至親,所以過去我曾無數次表示贊賞Delphi,而且我希望告訴別人Delphi仍然很重要的一些原因,也許如今Delphi比過去更重要。

          如果想細數Delphi擁有和能夠做到的一切,那么我可以滔滔不絕地說個沒完沒了。它的功能千千萬,能夠勝任的任務跨度非常大。Delphi帶來的創新源泉永不枯竭,我無法僅在一篇文章中盡數講清楚。

          Delphi和C++ Builder涵蓋的技術領域非常廣泛,能夠從各種環境中輕松訪問文檔至關重要

          在過去的15年中,我全身心投入到了Object Pascal和Delphi。我寫過博客,寫過論文,在學校教過Pascal,并盡我所能讓每一個人都了解Pascal。我甚至編寫了自己的開發環境,以方便Object Pascal能夠適應Node.js和HTML5等新平臺,而且全部都是用Delphi編寫的。

          多年來,軟件開發界已經接受了大量的折衷方案,現在整個行業的質量和可靠性損失已顯而易見。這也是學術界渴望扭轉這一趨勢,并讓Delphi重返高等教育的原因。

          我可以直言不諱:這個世界不需要JavaScript開發人員。我們不需要其他C#程序員。從整體看來,軟件開發需要的是更多的Delphi和C/C ++開發人員,因為質量的需求已經證實了我上面提到的那些基本原理。

          那些曾受過Delphi和C++ Builder等經典軟件工程教育的開發人員,如今可以開發定義規范的產品和公司。能夠撼動整個IT行業的人并非畢業于Java,他們是Java的締造者。真正核心的一切都是用原型語言締造的。這是一個無可爭議的事實。如果Linus Torvalds抱著Java不放,那么這個世界上就沒有Linux了。忠言逆耳,這些話可能很刺耳,但都是大實話。

          我們生活在一個很難用一種編程語言謀生的世界里。我并不是說你只需要選擇一種編程語言。每種語言都有各自的用途,每個開發人員都應該從多方面充實自己。但是我必須強調以原型語言為基礎的重要性。

          這與我個人的喜好無關,我也不是狂熱分子。我只是根據35年的開發經驗總結出來的。我覺得至少我有這方面的積累,可以公開談論這個話題。

          如果你想成為一名普通的程序員,那么可以專門研究普通的編程語言。然而,如果你想成為杰出的開發人員,那么必須學習一種原型語言,而且在我個人看來,Delphi是最有效的。

          如果你了解Delphi或C++ Builder,那么學習其他任何語言都易如反掌。因為在你學習Delphi時,就熟練掌握了那些基本原理。就沖著一點,你就比其他人都高一級。

          Delphi的優點在于,你可以從各個級別使用它。沒有人期望你編寫內聯匯編程序,或從頭開始創建數據庫引擎。自Turbo Pascal以來,Delphi的覆蓋范圍已非常廣泛,且已經過了時間的考驗,已發展成熟和完善。

          因此,你可以按照自己的情況發展和學習語言。只要你充滿好奇心,且愿意挑戰自己,那么Delphi絕對值得一試。

          此外,與其他語言不同,無論將來你投身何處,深入Delphi所獲得的知識和見解都會終身受益。Delphi?它是哲學,它是邏輯,它是藝術;它教你思考和提煉出解決方案,而其他人只能看到重重障礙。

          本文的核心思想總結起來就一句話:

          軟件工程學位不是目的地,而是聰明人一生的起點。

          親愛的Delphi,我的老朋友,祝你生日快樂!

          原文:https://community.idera.com/developer-tools/b/blog/posts/25-years-of-excellence

          本文為 CSDN 翻譯,轉載請注明來源出處。

          014年在傳統PC端瀏覽器發展的過程中,應該屬于全面進步的一年。本年度中,各家瀏覽器開發商紛紛使出著渾身解數,有的在逐漸地淡化用戶對版本追逐;有的則側重于瀏覽器界面的優化;還有的最終還是回歸到技術層面上的提升。反正無論功夫下到什么位置上,開發商的初衷都是要在自身的品牌瀏覽器基礎上,將更加精進的瀏覽器體驗推送到用戶面前。然而,經過了這一整年的發酵,我們也是時候來對本年度瀏覽器的一些新產品、新技術做一下總結了。

          火拼"心"時代 PC端瀏覽器2014年度橫評

          每一款產品都具有自己的核心技術(當然也不完全例外)。而對于瀏覽器來說,核心技術所代表的范疇也許相對還要更大。最重要或者說核心的部分是“Rendering Engine”,可大概譯為“渲染引擎”,不過我們一般習慣將之稱為“瀏覽器內核”,負責對網頁語法的解釋。

          所以,通常所謂的瀏覽器內核也就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。不同的瀏覽器內核對網頁編寫語法的解釋也有不同,因此同一網頁在不同的內核的瀏覽器里的渲染(顯示)效果也可能不同,這也是網頁編寫者需要在不同內核的瀏覽器中測試網頁顯示效果的原因。

          說了這么多,筆者的意思無非是為大家講述,作為一款瀏覽器產品,瀏覽器內核技術是那么的重要。就正如我們的橫評主題一樣,在這個拼“心”的競爭環境中,誰能提供更為精進的技術,并以這樣的技術作為基礎做好產品,誰就更容易獲得用戶青睞。那么,接下來的橫評,我們從瀏覽器純技術性能測試項展開本年度的PC瀏覽器橫評。

          測試平臺選擇

          如上圖所示,我們選用的是Windows 8.1操作系統平臺。由于最新的Windows 10技術預覽版目前仍然在更新之中,加之Win10正式版明年才會本正式推出。因此,為了確保測試進行過程中,避免受到不必要的干擾,造成數據的不準確。我們選用Windows 8.1 Pro(64 bit)。

          參測瀏覽器內核及優劣勢比較
          軟件名稱核心優缺點
          QQ瀏覽器Chrome Tab高速組件+IE高級內核兼容性好擴展強大,GPU渲染穩定偏弱
          Chrome瀏覽器Blink(Webkit分支)不易崩潰速度快,系統資源占用較高
          IE11IE兼容性好,功能的擴展性差
          FirefoxGecko頁面排版能力強,數據存儲能力較差
          獵豹瀏覽器Chrome/IE兼容核數據安全性高,瀏覽器設計欠佳
          搜狗瀏覽器WebKit/IE兼容核加速效果好,賬戶管理能力較弱
          傲游云瀏覽器Blink/IE兼容核內存占用少,多頁面加載穩定性差
          360極速瀏覽器Chromium/IE兼容核網頁加載速度快,廣告推送過頻繁
          百度瀏覽器Chrome/IE兼容核聚合百度產品,運行慢占用高

          本文九款參測瀏覽器產品中一,雙核瀏覽器均為極速核心+兼容核心,下文中所出現的各項測試,碰到雙核瀏覽器我們均以極速核作為主核心來進行測試。通過這樣的方式,則更能將單雙核瀏覽器在核心功能上的PK展現出來。

          備注:由于軟件通常是按照版本來進行更新的(少部分可能已經取消了版本號,但是日常的更新仍然是不斷在跟進),所以大家可以隨時關注ZOL軟件下載頻道各款參測產品的更新情況,以保證用戶電腦中的瀏覽器保持最新的版本。

          瀏覽器的加載測試,是每一款瀏覽器的基本功鑒定。雖然一眾瀏覽器在開發之初的產品理念、定位以及側重點可能并不是一樣的,但是歸根到底,瀏覽器最基本的功能就是針對網頁的瀏覽體驗。因此在網頁的加載方面,是我們測試第一步所首先要考慮的數據標準。那么,在眾多網頁指標,如圖文、視頻、Flash等方面,本文所選用的9款PC瀏覽器的表現如何?我們接下來就為大家呈現。

          傲游云瀏覽器標準加載最終速度

          這里需要指出的是,用戶普遍在使用不同瀏覽器的時候,在反應速度上的直接感覺,其中很大一部分就來自于這種單頁面加載的速度的體現。然而,普通瀏覽器用戶在使用瀏覽器過程中,除了在網頁在線視頻、游戲以外,其實絕大多數用戶無非還是在于瀏覽圖文信息頁面。要判斷一款瀏覽器是否好用,頁面加載速度是一項重要指標。而針對相對更為“高大上”的瀏覽器其他指標,我們會在后文繼續測試。

          參測PC瀏覽器標準頁面加載測試
          軟件名稱測試結果
          QQ瀏覽器speed=353kB/sec
          Chrome瀏覽器speed=340kB/sec
          IE11speed=351kB/sec
          Firefoxspeed=283kB/sec
          獵豹瀏覽器speed=293kB/sec
          搜狗瀏覽器speed=360kB/sec
          傲游云瀏覽器speed=361kB/sec
          360極速瀏覽器speed=328kB/sec
          百度瀏覽器speed=358kB/sec

          點評:這里,需要說明的一點是,測試頁面打開之后,PC瀏覽器對頁面或多或少地存在著網頁的緩存,這樣導致測試的耗時會越來越短,速度也就越來越快了。因此,在標準加載測試中,我們只采取一次性測試并作為最終的測試結果。在之前的年度、半年度的瀏覽器大型橫評中,我們進行了比較,傲游云瀏覽器在標準加載的多次測試中均處在了榜首位置上。本次橫評傲游云瀏覽器也是以361的測試得分排在所有測試產品第一位。

          JavaScript是前端開發的主要語言,我們可以通過編寫JavaScript程序來判斷瀏覽器的類型及版本,同時,還能通過JavaScript測試來檢測瀏覽器的性能。其中,JavaScript判斷瀏覽器類型一般有兩種辦法,一種是根據各種瀏覽器獨有的屬性來分辨,另一種是通過分析瀏覽器的user Agent屬性來判斷的。然而,歸根到底這兩種方法在瀏覽器身上的體現,成為性能本質上的考量。

          JavaScript測試QQ瀏覽器測試表現

          在許多情況下,值判斷出瀏覽器類型之后,還需判斷瀏覽器版本才能處理兼容性問題,而判斷瀏覽器的版本一般只能通過分析瀏覽器的user Agent才能知道。從服務器端到用戶的瀏覽器的界面上,瀏覽器內核對動態類型的對象分析過程需要花費一定的時間,最終結果將作為瀏覽器對動態頁面加載的速度快慢程度的一種判斷。

          Javascript性能測試
          軟件名稱結果(單位:毫秒,數值越小越好)
          QQ瀏覽器119.2ms+/-2.0%
          Chrome瀏覽器199.9ms+/-1.8%
          IE11120.4ms+/-2.4%
          Firefox200.0ms+/-3.8%
          獵豹瀏覽器214.1ms+/-2.1%
          搜狗瀏覽器201.6ms+/-1.5%
          傲游云瀏覽器218.2ms+/-2.8%
          360極速瀏覽器218.7ms+/-2.2%
          百度瀏覽器221.7ms+/-2.3%

          測試點評:JavaScript對瀏覽器進行加載特定的網頁網站的加載測試更具意義。這就是在加載過程中,只需要來測試這個過程中打開網頁所花費的時間,就可以比較出瀏覽器在JavaScript基準測試中的快慢情況。本輪測試相對來說,QQ瀏覽器優勢非常明顯,這也說明了使用QQ瀏覽器來加載大型網站頁面的時候,將會顯得更為給力。

          從IE9之后,一眾瀏覽器幾乎在Web平臺上,幾乎都能進行完全而充分的硬件加速,全面支持HTML5 GPU硬件加速。那么,借助于GPU的效能來渲染標準的Web內容,如文字、圖像、視頻、SVG(可縮放矢量圖形)等網絡信息,減少CPU負荷,大大的提高瀏覽器的速度。瀏覽器在絕大部分情況下,對圖形的處理非常重要,同時現在網頁技術的不斷進步,瀏覽器一個專門的圖形的“核心處理器”成為了必備。

          IE11瀏覽器GPU處理速度測試

          硬件加速已經被各大瀏覽器廠商爭相追捧,不同的瀏覽器使用不同的方法來實現硬件加速,因此它們的表現也不盡相同。使用IE Test Drive官方網站上新增的測試項目“FISH-GL”來對比測試各瀏覽器,對比它們在硬件加速方面的表現。

          瀏覽器GPU處理速度測試
          軟件名稱測試結果FPS(幀/秒)/GPU 3D渲染加速+
          QQ瀏覽器15
          Chrome瀏覽器22
          IE1125
          Firefox21
          獵豹瀏覽器13
          搜狗瀏覽器23
          傲游云瀏覽器18
          360極速瀏覽器20
          百度瀏覽器16

          點評:這個測試項目對瀏覽器的考驗,主要使用了很多新興的HTML5和SVG模式,比如SVG DOM處理、SVG元素變換、通過HTML5 audio標簽播放背景音樂。測試會追蹤瀏覽器的頁面渲染幀率,測試人員可以通過調節右邊位置上“魚缸中魚兒的數量”來減小瀏覽器渲染的需求,從而能夠相對的提升一下最終的幀數(但需要注意的是,多款瀏覽器之間進行對比時,必須將魚缸中魚兒的數量保持相同的數量來測試,以確保測試的準確性。)

          使用Javascript Raytracer可以測試出瀏覽器的JavaScript渲染性能,測試分為基本渲染和完全渲染,基本渲染測試時Javascript Raytracer會以三個像素為一組進行渲染,因此所需時間通常比較快。本項測試沒有封頂數值,單位秒,分值越小越好;而完全渲染測試也是通過Javascript Raytracer進行的,與基本渲染的不同之處在于需要逐個像素的進行渲染。

          完全渲染所得到的最終效果

          基本渲染和完全渲染測試
          軟件名稱基本渲染測試(S)完全渲染(S)
          QQ瀏覽器0.88513.376
          Chrome瀏覽器0.74721.089
          IE110.93015.832
          Firefox2.82835.215
          獵豹瀏覽器0.81619.577
          搜狗瀏覽器0.68415.197
          傲游云瀏覽器0.72914.360
          360極速瀏覽器0.54814.297
          百度瀏覽器0.71720.799

          基本渲染測試結果柱形圖

          完全渲染測試柱形圖

          測試分析:當引用了JS時候,瀏覽器在原理上會先發送1個jsrequest,一直等待該request的返回。因為瀏覽器需要1個穩定的DOM樹結構,而JS中很有可能有代碼直接改變了DOM樹結構。瀏覽器為了防止出現JS修改DOM樹,需要重新構建DOM樹的情況,所以就會阻塞其他的下載和呈現。這個過程,反應的時間雖然比較快,但卻經歷了大量的邏輯運算。因此,對于瀏覽器本身來說,不同的瀏覽器在應對一系列下載、加載以及呈現的運算時,需要的時間不一樣,這樣也就出現了最終測試結果的快慢不同。

          CSS3是CSS技術的升級版本,CSS3語言開發是朝著模塊化發展的。以前的規范作為一個模塊實在是太龐大而且比較復雜,所以把它分解為一些小的模塊,更多新的模塊也被加入進來。這些模塊包括:盒子模型、列表模塊、超鏈接方式、語言模塊、背景和邊框、文字特效、多欄布局等。

          性能測試的意義:斟酌瀏覽器的性能,通常都會進行性能測試,參考測試的標準,可以定位瀏覽器本身所具備的性能層次等級。經CSS3專業跑分,我們可以很方便地了解亮點。

          360極速瀏覽器CSS3兼容性測試結果

          瀏覽器CSS3兼容性測試
          軟件名稱測試結果(%)
          QQ瀏覽器51
          Chrome瀏覽器57
          IE1152
          Firefox55
          獵豹瀏覽器56
          搜狗瀏覽器58
          傲游云瀏覽器55
          360極速瀏覽器60
          百度瀏覽器57

          參測瀏覽器CSS3兼容性測試結果

          CSS3 Selectors Test是CCS3選擇器其中一項測試項目。啟動后的測試,網頁頁面內套件會自動運行一個小測試,這將確定您的瀏覽器是否能夠兼容大量CSS選擇器中的測試項目。如果項目不被兼容,則該項就被標記為一個特定的標簽。您可以點擊每個CSS選擇器的按鈕查看到結果,每個測試都包含這一個小案例,以便提供給使用者對應的解釋。

          在技術上,CSS3 Selectors Test在模擬某些用戶交互測試時是有限的,不僅僅依賴于用戶交互的CSS選擇器。幾乎所有的瀏覽器都無法檢測到訪問和未訪問鏈接之間隱私的變化 。影響到這些選擇的能力測試,而無需用戶交互。

          測試總結:通過CSS3方面測試,同類產品進行了對比之后,可以得出360極速瀏覽器在CSS3測試中,得到了60%的分值,在對頁面的布局、字體、顏色、背景和其它效果實現更加精確的控制,性能表現具備了非常明顯的優勢。

          HTML5是萬維網的核心語言,是標準通用標記語言下的一個應用超文本標記語言。那么,作為目前瀏覽器的一項全新標準,HTML5將推動Web進入新的時代。以往Web還只是上網看一些基礎文檔,而如今,Web是一個極大豐富的平臺。我們已經進入一個穩定階段,每個人都可以按照標準行事,并且可用于所有瀏覽器。如果我們不能攜起手來,就不會有統一的Web。

          傲游云瀏覽器HTML5測試結果

          HTML5標準的不斷規范化,其中網頁的開發者們有不可取代的功勞,希望大家能分享更多這些很炫的網站給我們。HTML5對于瀏覽器來說,意味著瀏覽器層次上的定位,當然它也是瀏覽器性能所不可獲取的。

          瀏覽器CSS3兼容性測試
          軟件名稱測試結果
          QQ瀏覽器375
          Chrome瀏覽器505
          IE11372
          Firefox471
          獵豹瀏覽器494
          搜狗瀏覽器467
          傲游云瀏覽器515
          360極速瀏覽器513
          百度瀏覽器439

          HTML5具有兩大特點:首先,強化了Web網頁的表現性能;其次,追加了本地數據庫等Web應用的功能。HTML5實際上包括HTML、CSS和JavaScript在內的一套技術組合。傲游云、360極速瀏覽器和Chrome的表現比較具有優勢了。

          評測總結

          以上測試部分,我們與以往的測試過程做了一些改變,主要是體現在測試項目的選擇上。本次我們加入了CSS3兼容性測試(本項測試定位瀏覽器本身所具備的性能層次等級)。經過以上詳細的測試比較之后,這里我們可以來做一下總結,并找到其中的優勢產品。(備注:由于測試的項目相對較多,在每一個細化測試項中,可能不同的瀏覽器獲得的測試得分都會呈現高低不平,因此最終我們所找出的優勢產品都是相對意義上的優勢,是從綜合角度上來考究的)

          QQ瀏覽器

          雙核瀏覽器:本次表現相對比較突出的有QQ瀏覽器、傲游云瀏覽器和360極速瀏覽器。然而其中,無論是這三款雙核哪一款瀏覽器產品,在經過本橫評所選用的6項測試,即使是這三款相對優秀的產品,也無法做到所有無法在測試中完美取勝。而我們唯一可以去比較的是,這三款產品的特性決定了,QQ瀏覽器在前段的測試非常優秀,后段似乎略顯“后勁不足”;而傲游云瀏覽器貫穿整個橫評,測試性能相對要均衡平穩一些;360極速瀏覽器則為“后進型”,后段測試顯得相對要突出不少。

          單核瀏覽器:IE11瀏覽器

          Internet Explorer 11

          本次橫評中,讓筆者影響較深的是IE11瀏覽器,因為在本年度的橫評中,我們看到在單核瀏覽器橫評的最終的測試結果,幾乎都要被Chrome瀏覽器囊括了,其他單核瀏覽器只得到了尷尬的局面。然而,這一次就不一樣了,IE11瀏覽器在經過Windows 8、8.1甚至是目前最新的Windows 10開發洗禮之后,已經殺到了Chrome瀏覽器的前面來。

          也許在大家的印象中,IE瀏覽器就是兼容性的化身。IE瀏覽器速度不算快,但是絕對不會讓您感覺到難受;IE界面很簡潔,乍一看去似乎什么功能都“沒有”,然而您所需要的很多功能其實也都能找得到。說到底,IE11本次賽過了Chrome確實讓人感到些許意外。

          者 | Fundebug

          責編 | 屠敏

          前言

          幾乎所有JavaScript開發者每天都在使用Chrome,大家知道它是如何成為瀏覽器霸主的嗎?

          Google為什么要做瀏覽器?

          其實,Google的聯合創始人Larry Page和Sergey Brin早在2001年就想做瀏覽器,但是當時的CEO施密特一直反對,因為從頭開發一個瀏覽器的成本太高了,不是一個創業公司可以承受的。因此,Google直到2006年,公司已經上市2年了,才開始做瀏覽器,秘密開發了2年,Chrome才正式發布。

          Google真正開始開發Chrome是2006年,當時IE的市場占有率高達80%,Firefox大概是10%。自從擊敗Netscape之后,IE似乎可以高枕無憂了。如果那時候有人要做一個瀏覽器,大多數人都會質疑,還需要多個瀏覽器干嘛?IE和Firefox又不是不能用。

          但是,2006年時的Web早已經不再是簡單的靜態頁面,Gmail、Youtube、Google Maps,Facebook這些復雜的Web應用已經出現一段時間了,傳統瀏覽器在架構、性能以及穩定性上已經逐漸不再適用了,這時正是需要一款更加強大的瀏覽器來滿足用戶與Web開發者的需求。

          Google所做的最重要的事情,就是對成千上萬的網頁進行排序,所以它存在的意義是基于網頁的。而一個更快、更好的瀏覽器,可以促進Web技術的發展,網頁會越來越多,越來越好,用戶花在Web上的時間越來越多,這對Google是有益。因此,Google要做瀏覽器,不只是想要一個搜索入口那么簡單。

          Google希望通過Chrome瀏覽器來促進Web技術的發展,從而讓自己受益,這也不是什么秘密,Chrome團隊的人都是這么說的,Google現在的CEO是Sundar Pichai,他當年發布Chrome的時候是這樣說的:

          We hope to collaborate with the entire community to help drive the web forward.

          這樣假大空的話當年大概沒幾個人相信,但是這不重要,重要的是Google真的做到了,Chrome確實推動了Web技術的發展。沒有Chrome的話,現在的Web技術大概確實得落后不少。

          如果Google只是想要一個搜索入口,它可以收購一個瀏覽器,或者基于開源瀏覽器套一個殼,做一下賬戶系統就夠了,再通過Google網站進行推廣。國內各個大廠的瀏覽器都是基于Chrome的開源版本Chromium實現的,某個瀏覽器甚至直接打包了Chrome的安裝包。

          既然Google想做的事情是推動Web技術發展,如果沿用舊的思想和技術的話,顯然是做不到的。于是,他們設計了一個多進程的瀏覽器架構,重新寫了一個性能彪悍的JavaScript引擎V8,后來又基于Webkit做了一個新的渲染引擎Blink。

          不妨這樣說,Google與國內的搜索引擎巨頭們的還差一個Chrome瀏覽器。后者看到的是搜索流量帶來的商業價值以及重新開發一個瀏覽器的巨大成本,而前者看到了Web技術發展對搜索引擎本身的長遠價值。

          Chrome就一定能成功嗎?

          Google終于決定做瀏覽器了,但這事能不能做成,其實也不一定。和每一個大公司一樣,Google失敗的項目遠遠多于成功的項目,大家不妨看看Killed by Google里面的列表。

          Google確實有很多非常成功的產品,比如Android,Youtube,Google Maps, DeepMind,但是它們其實都是收購來的。Chrome算是Google為數不多的真正從零開始打造出來的產品。

          下面這張圖是Chrome發布時的照片:

          圖片來源:Niall Kennedy

          照片中從左至右是Larry Page, Brian Rakowski, Sundar Pichai, Sergey Brin, Darin Fisher, Lars Bak和Ben Goodger,他們都是Chrome瀏覽器最關鍵人物,也都因為Chrome的成功而收益不菲。

          • Larry Page和Sergey Brin是Google的創始人,他們一直希望做瀏覽器;

          • Sundar Pichai當時是Google負責產品的副總裁,Chrome也在他的管理范圍之類,現在他是Google的CEO;

          • Brian Rakowski當時是Chrome的產品經理,現在是Google負責產品的副總裁;

          • Lars Bak是JavaScript引擎V8的負責人,曾長期從事編程語言的虛擬機開發工作;

          • Darin Fisher是Chrome最早期的開發者,之前是Firefox的工程師,現在是Google負責Chrome的副總裁;

          • Ben Goodger是Chrome最早期的開發者,之前是Firefox的工程師,現在的職級為Distinguished Engineer,僅次于Google Fellow以及Senior Google Fellow;

          照片中大家都挺開心的,秘密開發了2年的Chrome終于發布了,但是他們能想到10年后Chrome可以占有接近70%的市場份額嗎?

          下圖是2009年到2019年瀏覽器的市場份額變化,Chrome一路飆升,而一度壟斷市場的IE則剛好相反:

          圖片來源:Visual Capitalist

          不妨對比一下1994年到2008年的瀏覽器市場份額,IE通過免費捆綁Windows把Netscape整垮了,巔峰時期的市場占有率高達96%:

          圖片來源:Wired

          瀏覽器一直是一個硝煙四起的戰場,因此瀏覽器市場份額的變化多少有點戲劇性。

          Chrome為什么會成功?

          Chrome為什么會這么成功呢?Google創始人Larry Page是這樣說的:

          Chrome has hundreds of millions of happy users and is growing fast thanks to its speed, simplicity and security.

          Chrome很快,很簡單,也很安全,所以它成功了,這是Page的觀點。真的是這樣嗎?其實也差不多。不過還少了一點,stability,即穩定性。Chrome的產品哲學是一共是4個S:Speed, Security, Stability以及Simplicity。其實,這4個S適用于所有互聯網產品,要做到話也不是那么容易。

          說人話,Chrome究竟有哪些不一樣呢?

          1. 簡潔的用戶界面(Simplicity)

          2. 多進程架構(Stability, Speed, Security)

          3. JavaScript引擎V8(Speed)

          4. 渲染引擎Blink(Speed)

          用戶界面的Simplicity其實不難做到,現在很多瀏覽器和Chrome看起來也差不多,只是Chrome率先簡化了瀏覽器的界面。這類似于iPhone發布之后,大家明白了一個簡單的道理,原來手機只需要一塊屏幕就夠了,不需要那么多按鍵,后來所有智能手機基本上都長得一樣了…

          多進程架構、V8引擎以及Blink引擎都是非常硬核的技術,不是一般開發者可以做到的,就算是現在也很少有人或者公司去嘗試做這個,所以現在國內外很多瀏覽器都是基于Chromium實現的。我想大家心里都清楚,要想這3點上超越Chrome,可能性非常小。

          Blink渲染引擎的優化對提高Web性能也至關重要,只是Chrome剛開始用的是Webkit,我會在以后的博客中詳細介紹Blink。

          當然,Chrome所做的創新遠不只這么多,我列舉的4點是Chrome成功最關鍵的要素。

          簡潔的用戶界面

          Chrome已經發布10多年了,但是它的界面其實沒怎么變過:后退圖標,前進圖標,刷新圖標,合并的地址欄與搜索框,書簽圖標,登陸圖標,設置圖標…Chrome的界面非常簡潔,沒有任何多余的元素。

          2009年的Chrome是這樣的:

          圖片來源:Gmail in 30 seconds

          2019年的Chrome是這樣的:

          Chrome發布時,IE8也差不多在同一時期發布,但是它的界面就沒那么簡潔了:

          通常,用戶應該不會去點擊“頁面”、“安全”、“工具”等選項,其實它們完全可以隱藏起來。Chrome的很多選項都是隱藏在設置選項里面,其實更加科學。

          Chrome是第一個將地址欄與搜索框合并的瀏覽器,合并的框被稱為Omnibox,用戶既可以輸入地址,也可以搜索關鍵字。當用戶輸入時,Chrome還會進行實時推薦用戶可能要訪問的網頁。

          Chrome還把書簽欄給隱藏了,這對于重度書簽用戶(比如我)來說帶來一些不便,但是這也讓界面又簡潔了很多。很多瀏覽器的書簽欄不僅沒有隱藏,還會添加很多莫名其妙的默認書簽,甚至很多軟件安裝時也會給瀏覽器添加一些書簽,而這些書簽其實很多用戶都不會訪問。

          合并地址欄和搜索框,隱藏書簽欄,這樣做不只是讓用戶界面更加簡潔,還可以培養用戶的搜索習慣,讓用戶不在需要記住特定的網站。

          Chrome與IE8的Tab位置是不一樣的,Chrome的Tab在上面,而IE8的Tab在下面,這個區別似乎沒那么重要,不過也沒那么簡單。Tab是Chrome用戶界面最重要的元素,每一個Tab使用獨立的進程,Tab可以拖拽出來作為獨立的窗口,相當于一個獨立的應用。

          Chrome的設計哲學是”Content, not Chrome”,因此它們Tab置頂,把一切可以省略的東西都去掉,比如搜索框、狀態欄、書簽欄以及各種設置的快捷方式,盡量讓每一個Tab看起來像一個獨立的應用:郵件、視頻、社交或者購物等,不要讓多余的瀏覽器元素影響用戶體驗,讓用戶專注于Web應用本身,讓Web應用越來越重要,這不不正是Google的陽謀嗎?

          Chrome的產品哲學與iPhone以及微信本質是一樣的,都是極簡主義,這個地球人都知道,但是沒有多少產品可以真正做到。為什么呢?因為要做到極簡主義,需要深刻思考用戶需求以及產品價值。

          多進程架構

          Chrome的每一個Tab和插件,都使用獨立的進程。這樣可以提高瀏覽器的性能、安全性以及穩定性:

          • 充分利用多核CPU,不同的進程可以使用不同的CPU核運行;

          • 便于限制Tab與插件進程的權限,減少安全隱患;

          • 當某一個Tab的頁面崩潰了,不會導致其他Tab崩潰,整個瀏覽器還可以正常使用;

          多進程架構借鑒了現代操作系統的設計思想,瀏覽器不再是一個簡單的應用,它是一個平臺,可以用于獨立運行各種各樣的Web應用。

          使用Chrome的任務管理器,可以查看每一個Tab和插件進程所使用的CPU、內存已經網絡。這樣可以幫助Web開發者優化代碼,高效利用計算機資源。

          既然多進程架構有這么多好處,那為什么以前的瀏覽器采用單進程架構呢?因為IE、Firefox等瀏覽器誕生時,Web還非常簡單,大多是靜態頁面,單進程就夠用了,而且當年也沒有什么多核CPU。

          從單進程架構切換到多進程架構是一個非常復雜的過程,Firefox從2009年到2017年花了整整8年時間才完成切換。從這一點來說,Firefox落后了Chrome接近10年。這倒不是因為Chrome的工程師特別厲害,而是因為Chrome從一開始就設計了多進程架構,沒有什么技術債。

          JavaScript引擎V8

          Chrome的性能優異,很大程度上要歸功于他們的重新的開發的JavaScript引擎V8。V8引擎可以將JS代碼編譯為高效的匯編代碼,同時還要負責執行代碼、分配內存以及垃圾回收。

          V8引擎的命名靈感來自超級性能車的V8引擎,敢于這樣命名確實需要一些實力,它性能確實一直在穩步提高,下面是使用Speedometer benchmark的測試結果:

          圖片來源:https://v8.dev

          JavaScript是動態的,且沒有類型,這會給V8引擎編譯JS代碼時帶來很多麻煩。不過V8引擎可以記錄代碼第一次執行時的類型信息,當代碼第二次執行時,則可以根據記錄的類型信息生成優化的匯編代碼。另外,V8引擎還會為Object生成動態的hidden class,用來記錄Object的結構,以提高屬性的訪問速度。

          V8引擎的垃圾回收算法也非常強大,可以大幅減少內存使用。最近有人對比了一下3中不同類型的JS引擎JavaScriptCore、Hermes以及V8在React Native應用中的內存使用情況,發現V8的內存使用量明顯低于其他引擎,且非常平穩:

          圖片來源:Bhaskar gyan vardhan

          V8引擎不只是讓Chrome變快,它也讓JavaScript變得更加強大,讓JavaScript生態系統變得異常繁榮。Node.js也是基于V8引擎的,因為有Node.js,才有了數量龐大的NPM模塊,才有了各種各樣的JavaScript開發框架和工具。

          Chrome會成為下一個IE嗎?

          也許是樹大招風,最近批評Chrome的聲音越來越多了,有人甚至說Chrome會成為下一個IE6。個人覺得這個有點危言聳聽。

          Chrome從一開始就是開源的,”Talk is cheap, show me the code”,如果實在對Chrome有啥特別不爽的地方,其實可以去改代碼,或者fork一個更好的版本。

          Chrome從一直是尊重技術標準的,它在發布的時候就通過了Acid測試,更重要的是,它一直在推動HTML5、CSS、ECMAScript、HTTPS, HTTP/2, WebAssembly, Service Workers, Source Map等Web相關技術標準的發展,大家可以在各個標準提案中看到Google工程師的身影。

          有人說Google工程師最大的問題就是喜歡提新的技術標準,但是有標準比沒有標準要好太多了,國內各個大廠小程序做了快3年了,至今連個標準都沒有,各玩各的,這樣做導致整個小程序行業一起加班,一起重復勞動。最嚴重的問題在于,沒有標準會制約小程序的進一步發展,大家無法給用戶提供最好的產品。

          開放繁榮的Web符合Google的長遠利益,因為Google是靠Web廣告賺錢的;但是Web對于Microsoft來說一直就沒有太大商業價值,因為Microsoft賣的是操作系統;按照吳軍老師的基因論,IE之所以失敗是Microsoft的基因決定的,而Google的基因決定了它必須把Chrome做好。

          從目前的情況來看,Chrome依然會保持簡潔的界面,性能也會一直提高,這樣的話,用戶和開發者也沒有多少動力去換瀏覽器。我已經用了7年Chrome了,未來還會繼續用下去,那你呢?

          參考

          • The Google Chrome Comic

          • Inside Chrome: The Secret Project to Crush IE and Remake the Web

          • From PM to CEO: How Sundar Pichai’s Background in Product Paved the Way for Becoming CEO at Google

          • Chrome is turning into the new Internet Explorer 6

          • From 0 to 70% Market Share: How Google Chrome Ate the Internet

          • Google Chrome launch

          • Modern Multi-Process Browser Architecture

          • Photos: 10 years of Google Chrome

          • Timeline: The 30-Year History of the World Wide Web

          • How we designed Chrome 10 years ago

          • The Chromium Projects: Core Principles

          【End】

          下面給大家推薦 CSDN 的好朋友——程序人生


          主站蜘蛛池模板: 国产AV一区二区三区传媒| 一本岛一区在线观看不卡| 福利片福利一区二区三区| 国产成人无码一区二区三区 | 国产一区二区三区国产精品| 久久久国产精品亚洲一区| 激情内射日本一区二区三区| 一区二区精品久久| 免费无码一区二区| 国产一区二区三区亚洲综合| 国产精品无码亚洲一区二区三区| 91秒拍国产福利一区| 无码人妻AV免费一区二区三区| 日韩人妻无码一区二区三区| 91精品一区国产高清在线| 亚洲中文字幕丝袜制服一区| 国产成人高清精品一区二区三区| 国产一区二区三区在线电影| 日韩一区二区三区免费播放| 日韩AV在线不卡一区二区三区 | 亚洲日韩国产精品第一页一区| 国产精品亚洲不卡一区二区三区| www.亚洲一区| 国产在线精品一区二区夜色| 制服中文字幕一区二区| 国产激情无码一区二区app| 国产精品免费一区二区三区四区| 亚洲AV无码一区二区乱孑伦AS| 无码av免费一区二区三区| 国产精品视频分类一区| 国产日产久久高清欧美一区| 视频一区二区在线播放| 果冻传媒一区二区天美传媒| 日韩免费无码视频一区二区三区 | 香蕉久久一区二区不卡无毒影院 | 亚洲人成网站18禁止一区| 国产福利视频一区二区| 色一乱一伦一图一区二区精品| 中文字幕精品一区二区2021年| 国产视频福利一区| 成人精品视频一区二区三区|