標籤: 包裝設計

  • 小師妹學JavaIO之:文件系統和WatchService

    小師妹學JavaIO之:文件系統和WatchService

    目錄

    • 簡介
    • 監控的痛點
    • WatchService和文件系統
    • WatchSerice的使用和實現本質
    • 總結

    簡介

    小師妹這次遇到了監控文件變化的問題,F師兄給小師妹介紹了JDK7 nio中引入的WatchService,沒想到又順道普及了一下文件系統的概念,萬萬沒想到。

    監控的痛點

    小師妹:F師兄最近你有沒有感覺到呼吸有點困難,后領有點涼颼颼的,說話有點不順暢的那種?

    沒有啊小師妹,你是不是秋衣穿反了?

    小師妹:不是的F師兄,我講的是心裏的感覺,那種莫須有的壓力,還有一絲悸動纏繞在心。

    別繞彎子了小師妹,是不是又遇到問題了。

    更多精彩內容且看:

    • 區塊鏈從入門到放棄系列教程-涵蓋密碼學,超級賬本,以太坊,Libra,比特幣等持續更新
    • Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續更新
    • Spring 5.X系列教程:滿足你對Spring5的一切想象-持續更新
    • java程序員從小工到專家成神之路(2020版)-持續更新中,附詳細文章教程

    更多內容請訪問www.flydean.com

    小師妹:還是F師兄懂我,這不上次的Properties文件用得非常上手,每次修改Properties文件都要重啟java應用程序,真的是很痛苦。有沒有什麼其他的辦法呢?

    辦法當然有,最基礎的辦法就是開一個線程定時去監控屬性文件的最後修改時間,如果修改了就重新加載,這樣不就行了。

    小師妹:寫線程啊,這麼麻煩,有沒有什麼更簡單的辦法呢?

    就知道你要這樣問,還好我準備的比較充分,今天給你介紹一個JDK7在nio中引入的類WatchService。

    WatchService和文件系統

    WatchService是JDK7在nio中引入的接口:

    監控的服務叫做WatchService,被監控的對象叫做Watchable:

    WatchKey register(WatchService watcher,
                          WatchEvent.Kind<?>[] events,
                          WatchEvent.Modifier... modifiers)
            throws IOException;
    WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events)
            throws IOException;
    

    Watchable通過register將該對象的WatchEvent註冊到WatchService上。從此只要有WatchEvent發生在Watchable對象上,就會通知WatchService。

    WatchEvent有四種類型:

    1. ENTRY_CREATE 目標被創建
    2. ENTRY_DELETE 目標被刪除
    3. ENTRY_MODIFY 目標被修改
    4. OVERFLOW 一個特殊的Event,表示Event被放棄或者丟失

    register返回的WatchKey就是監聽到的WatchEvent的集合。

    現在來看WatchService的4個方法:

    1. close 關閉watchService
    2. poll 獲取下一個watchKey,如果沒有則返回null
    3. 帶時間參數的poll 在等待的一定時間內獲取下一個watchKey
    4. take 獲取下一個watchKey,如果沒有則一直等待

    小師妹:F師兄,那怎麼才能構建一個WatchService呢?

    上次文章中說的文件系統,小師妹還記得吧,FileSystem中就有一個獲取WatchService的方法:

    public abstract WatchService newWatchService() throws IOException;
    

    我們看下FileSystem的結構圖:

    在我的mac系統上,FileSystem可以分為三大類,UnixFileSystem,JrtFileSystem和ZipFileSystem。我猜在windows上面應該還有對應的windows相關的文件系統。小師妹你要是有興趣可以去看一下。

    小師妹:UnixFileSystem用來處理Unix下面的文件,ZipFileSystem用來處理zip文件。那JrtFileSystem是用來做什麼的?

    哎呀,這就又要扯遠了,為什麼每次問問題都要扯到天邊….

    從前當JDK還是9的時候,做了一個非常大的改動叫做模塊化JPMS(Java Platform Module System),這個Jrt就是為了給模塊化系統用的,我們來舉個例子:

    public void useJRTFileSystem(){
            String resource = "java/lang/Object.class";
            URL url = ClassLoader.getSystemResource(resource);
            log.info("{}",url);
        }
    

    上面一段代碼我們獲取到了Object這個class的url,我們看下如果是在JDK8中,輸出是什麼:

    jar:file:/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/lib/rt.jar!/java/lang/Object.class
    

    輸出結果是jar:file表示這個Object class是放在jar文件中的,後面是jar文件的路徑。

    如果是在JDK9之後:

    jrt:/java.base/java/lang/Object.class
    

    結果是jrt開頭的,java.base是模塊的名字,後面是Object的路徑。看起來是不是比傳統的jar路徑更加簡潔明了。

    有了文件系統,我們就可以在獲取系統默認的文件系統的同時,獲取到相應的WatchService:

    WatchService watchService = FileSystems.getDefault().newWatchService();
    

    WatchSerice的使用和實現本質

    小師妹:F師兄,WatchSerice是咋實現的呀?這麼神奇,為我們省了這麼多工作。

    其實JDK提供了這麼多類的目的就是為了不讓我們重複造輪子,之前跟你講監控文件的最簡單辦法就是開一個獨立的線程來監控文件變化嗎?其實…..WatchService就是這樣做的!

    PollingWatchService() {
            // TBD: Make the number of threads configurable
            scheduledExecutor = Executors
                .newSingleThreadScheduledExecutor(new ThreadFactory() {
                     @Override
                     public Thread newThread(Runnable r) {
                         Thread t = new Thread(null, r, "FileSystemWatcher", 0, false);
                         t.setDaemon(true);
                         return t;
                     }});
        }
    

    上面的方法就是生成WatchService的方法,小師妹看到沒有,它的本質就是開啟了一個daemon的線程,用來接收監控任務。

    下面看下怎麼把一個文件註冊到WatchService上面:

    private void startWatcher(String dirPath, String file) throws IOException {
            WatchService watchService = FileSystems.getDefault().newWatchService();
            Path path = Paths.get(dirPath);
            path.register(watchService, ENTRY_MODIFY);
    
            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                try {
                    watchService.close();
                } catch (IOException e) {
                    log.error(e.getMessage());
                }
            }));
    
            WatchKey key = null;
            while (true) {
                try {
                    key = watchService.take();
                    for (WatchEvent<?> event : key.pollEvents()) {
                        if (event.context().toString().equals(fileName)) {
                            loadConfig(dirPath + file);
                        }
                    }
                    boolean reset = key.reset();
                    if (!reset) {
                        log.info("該文件無法重置");
                        break;
                    }
                } catch (Exception e) {
                    log.error(e.getMessage());
                }
            }
        }
    

    上面的關鍵方法就是path.register,其中Path是一個Watchable對象。

    然後使用watchService.take來獲取生成的WatchEvent,最後根據WatchEvent來處理文件。

    總結

    道生一,一生二,二生三,三生萬物。一個簡簡單單的功能其實背後隱藏着…道德經,哦,不對,背後隱藏着道的哲學。

    本文的例子https://github.com/ddean2009/learn-java-io-nio

    本文作者:flydean程序那些事

    本文鏈接:http://www.flydean.com/java-io-file-watchservice/

    本文來源:flydean的博客

    歡迎關注我的公眾號:程序那些事,更多精彩等着您!

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※回頭車貨運收費標準

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※推薦評價好的iphone維修中心

    ※教你寫出一流的銷售文案?

    台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

    台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

  • 500萬一台的勞斯萊斯SUV要來了 有什麼吸引土豪的新配方?

    500萬一台的勞斯萊斯SUV要來了 有什麼吸引土豪的新配方?

    少於四百萬的話,對於這個級別的SUV來說,可能都算得上是便宜的了。

    現在市面上售價最昂貴的SUV車型是賓利添越,398-480萬的售價可謂之天價,如此高昂的售價不僅僅是普通人可望不可及,也會讓眾多傳統意義上的豪華品牌SUV在賓利添越面前顯得黯然失色。

    而玩豪華玩奢侈的汽車品牌不僅僅只有賓利一家,汽車業界著名的奢華品牌勞斯萊斯近日公布了兩張路試諜照,而主角正是可能成為勞斯萊斯旗下首款SUV車型,——項目代號Cullinan。

    首先要說明的是,Culinan並不是該款SUV正式的名稱,而是勞斯萊斯品牌開發SUV車型項目的代號,該款車型具體名稱暫時不得而知。

    從諜照中可以看出,儘管車身上覆蓋著厚重的偽裝,但是前臉是類似現在勞斯萊斯家族式設計,依然是靈感源自帕提農神廟的直瀑式進氣格柵,其他細節處設計暫未公布,但是不妨來看看國外媒體所曝光的渲染圖。

    這些圖片僅僅是假想圖,真實程度並不高,但我們不妨可以做一個猜想,在賓利添越配備6.0T W12渦輪增壓發動機的前提下,作為與賓利添越抗衡的一款奢華級SUV,勞斯萊斯SUV也將會匹配一款12缸數的渦輪增壓引擎。

    【賓利添越的W12發動機】

    而賓利添越作為一款奢華級的SUV,在道路適應性方面同樣有着出色的性能表現,如此,也可以確定勞斯萊斯SUV將會在全球多種地區、多種複雜路況下對其進行嚴苛性較強的測試,以致力於生產出一款性能卓越的車型。

    全文總結:無論是勞斯萊斯SUV還是賓利添越,用四五百萬去買一台汽車對於普羅大眾來說終究不太現實,但是作為愛車人士,看看熱鬧過過眼癮也是不錯的選擇,根據目前公布的路試諜照推測,如果進度正常,這款SUV將有可能在2018年左右發布,至於售價嘛……少於四百萬的話,對於這個級別的SUV來說,可能都算得上是便宜的了……本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※想知道最厲害的網頁設計公司"嚨底家"!

    ※別再煩惱如何寫文案,掌握八大原則!

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※回頭車貨運收費標準

    台中搬家公司費用怎麼算?

  • 手把手帶你入門numpy,從此數據處理不再慌【四】

    手把手帶你入門numpy,從此數據處理不再慌【四】

    本文始發於個人公眾號:TechFlow,原創不易,求個關注

    今天是numpy專題的第四篇文章,numpy中的數組重塑與三元表達式。

    首先我們來看數組重塑,所謂的重塑本質上就是改變數組的shape。在保證數組當中所有元素不變的前提下,變更數組形狀的操作。比如常用的操作主要有兩個,一個是轉置,另外一個是reshape。

    轉置與reshape

    轉置操作很簡單,它對應線性代數當中的轉置矩陣這個概念,也就是說它的功能就是將一個矩陣進行轉置

    轉置矩陣的定義是將一個矩陣的橫行寫為轉置矩陣的縱列,把縱列寫成轉置矩陣的橫行。這個定義的是二維的矩陣,本質上來說,轉置操作其實是將一個矩陣沿着矩陣的大對角線進行翻轉。翻轉之後,顯然這個矩陣的各個維度都會發生變化。

    其中二維的矩陣最直觀,一個4 x 3的矩陣,轉置之後得到的是3 x 4的矩陣。如果維度更多呢?如果是3 x 2 x 4的矩陣轉置之後會得到什麼?

    很簡單,得到的會是4 x 2 x 3的矩陣。我們都知道,如果我們把一個矩陣各個維度的大小寫在一起,會得到一個元組(tuple),這個元組稱為矩陣的shape,我實在是不知道該怎麼翻譯這個單詞,但是我覺得叫做形狀不太妥當,所以就保留了英文原文。轉置之後,矩陣的shape會整個翻轉。比如(3, 2, 4)會變成(4, 2, 3)。

    我們可以來看一個例子,會更加的直觀。首先我們先看最簡單的二維矩陣:

    這是隨機出來的一個3 x 4的二維矩陣,在numpy當中,有兩種方式獲取一個矩陣或者是數組的轉置。第一種方式是通過在數組的變量名之後加上.T操作符,第二種方式是調用numpy中的transpose函數,這兩種方式是一樣的。我個人比較傾向於前者,寫起來比較簡單。

    我們可以看到轉置之後新的矩陣的第一列其實是原矩陣的第一行,第一行是原矩陣的第一列。可以看成是原矩陣按照從左上角到右下角的一條無形的線翻轉之後的結果。

    理解了轉置之後,我們再來看reshape操作。其實我們從這個單詞上也能大概猜到它的意思,reshape也就是再次shape的意思,本意是根據我們想要的shape重新組裝矩陣當中的元素

    我們來看一個例子吧,首先,我們通過arange方法來獲取一個一維的數組:

    因為是1維的,所以我們去看它的shape也只有一維。假設我們不喜歡這樣的一維數組,而想把它變成3 x 4或者是6 x 2的格式,這時候使用reshape就會很方便。

    本質上來說reshape操作其實就是按照順序從矩陣當中獲取元素,然後按照我們制定的shape填充出一個新的矩陣的操作。這個應該不難理解, 它也是非常常用的重塑操作,通過reshape和轉置,我們可以很方便地操作矩陣的大小,根據我們的需要作出改變。

    三元表達式

    在許多編程語言當中我們經常會用到三元表達式,三元表達式其實本質就是if-else語句,只是我們用特殊的方法將它簡寫。

    比如說在C++當中,我們可以把if condition A else B簡寫成:condition ? A : B。Python同樣支持三元表達式,不過對C++的三元表達式做了一些改動,在Python當中三元表達式寫成:A if condition else B。相對來說更加直觀一些,我們經常會在數組初始化的時候用到三元表達式。

    比如,我們可能會這樣生成一個數組:

    arr = [1 if condition else 0 for _ in range(10)]
    

    我們通過條件來判斷了每一位是1還是0來生成了一個數組,簡化了代碼。在numpy當中同樣繼承了這個用法,我們一樣可以使用三元表達式,不過numpy將它封裝進了where函數當中,我們是通過調用一個方法來實現三元表達式的功能。我們來看下具體的用法,假設我們有兩個數組:

    我們還有一個bool型的數組c,我們希望根據c數組選擇從a數組或者是b數組當中獲取數據。我們可以使用where寫成這樣:

    在這個例子當中,c數組中的1和0分別表示True和False。當我們調用np.where的時候,numpy會自動根據c數組當中的值去選擇從a數組還是b數組當中獲取數據。相當於我們執行了這麼一段代碼:

    [x if c else y for c, x, y in zip(c, a, b)]
    

    雖然兩者的運行結果是一樣的,但是顯然使用循環的方法計算耗時更長,而使用numpy的向量做法運算速度更快。除此之外,numpy的where方法還支持高維的數組,但是循環的方法不行。並且where還有一些更高級的用法,比如說我們傳入的第二個和第三個參數,可以不是數組而是一個標量。比如我們可以指定當c中的元素是True的時候填入1,否則填入-1:

    甚至我們還可以將標量和向量結合起來使用:

    並且這裏的數組c也可以替換成邏輯運算:

    總結

    今天的文章主要介紹了Numpy當中的reshape、轉置以及where的用法,這些也是numpy的基礎用法,尤其是轉置、reshape,幾乎是處理數據必用的方法。所以想要從事Python機器學習或者是人工智能的小夥伴,numpy的這些用法是一定要會的。

    本文當中介紹的只是numpy的一些固定套路,但其實numpy很多的用法是可以組合的,一些看似平淡無奇的用法組合在一起之後會有神奇的效果。這一點光看書或者是資料是很難窮盡的,所以如果你已經學會了這些api的基本使用,接下來最應該做的是去讀一些大牛的源碼,看看大牛們是如何運用這些工具的,相信一定還會有新的收貨。

    文章就到這裏,如果喜歡本文,可以的話,請點個關注

    本文使用 mdnice 排版

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※回頭車貨運收費標準

    ※推薦評價好的iphone維修中心

    ※超省錢租車方案

    台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

    ※推薦台中搬家公司優質服務,可到府估價

  • WinUI 3 試玩報告

    WinUI 3 試玩報告

    1. 什麼是 WinUI 3

    在微軟 Build 2020 開發者大會上,WinUI 團隊宣布可公開預覽的 WinUI 3 Preview 1,它讓開發人員可以在 Win32 中使用 WinUI。WinUI 3 Preview 1 包含新的 VisualStudio 項目模板,可以創建面向 .NET 5 的 C# 和 C++/Win32 項目。從技術上講,WinUI 3 將 UWP 的 XAML、Composition 和 Input 層分離,並通過NuGet將它們獨立分發給針對Windows 10 版本 1803 及更高版本的 Win32 應用。

    WinUI 3 適用於 Win32 和 UWP,這篇文章主要討論 Win32 的情況。

    2. 理解 WinUI 3

    以前我們總是抱怨 WPF 多年都不提供新的主題,不提供新的控件,性能又沒提升。現在微軟索性把什麼都是新的 WinUI 3 提供給桌面開發,沒 WPF 什麼事了。

    簡單來說,UWP 的開發體驗不好(關於這個話題真是一言難盡),而且出了 Bug 還必須等待下半年的 Windows 更新進行修復,但微軟的開發人員專心給 UWP 的 UI 層加各種功能;.NET Core 更新很快,但很少人有興趣有動力給陳舊的 WPF 的 UI 層進行大幅度的改進。於是 WinUI 將 UWP 的 UI 層從 Windows SDK 的其它部分分離,並將從 Windows 轉移到 Nuget。現在建一個 C++ 或 C#(.NET 5) 程序,再從 Nuget 上裝個 WinUI 3 的包套個 UI 層,一個基於 Fluent Design,觸摸友好,性能無與倫比的應用程序就誕生了。

    上圖列舉了 WinUI 3 和其他平台對比的部分特性,除此之外 WinUI 3 還有很多好處,例如開源、更新更快、更新不與系統版本綁定等,更詳細的內容還是看微軟自己怎麼宣傳吧:

    WinUI – The modern native UI platform of Windows.

    不過要用上 WinUI 3 還要等一年半載。下面是微軟給出的發布路線圖,目前我們也只能用 Preview 版嘗嘗鮮。

    3. 試玩WinUI 3

    要試玩 WinUI 3 首先要有 Windows 10 1803 以上版本的電腦(WinUI 3 最低支持1803),然後還需要使用 Visual Studio 2019 16.7 以上版本(目前只能安裝預覽版)。安裝 Visual Studio 時要把以下工作負載全都選上:

    • .NET 桌面開發
    • 通用 Windows 平台開發
    • 使用 C++ 的桌面開發
    • 適用於通用 Windows 平台負載的 C++(V142) 通用 Windows 平台工具可選組件

    當然 .NET 5.0 也要裝上。

    然後在 https://aka.ms/winui3/previewdownload 下載並安裝 WinUI 3 Project Templates 擴展,這樣才可以在 Visual Studio 創建 WinUI 的項目。

    可選 C++ 或 C# ,這裏我選擇了 C# 的“Blank App, Packaged
    (WinUI in Desktop)”項目,並選擇了對應的 Windows 平台:

    項目創建后 Visual Studio 生成了兩個項目。第一個包含應用的代碼,代碼結構基本和 UWP 一樣,只是少了用於打包應用的 Package.appxmanifest 和一些圖片。從依賴項里可以看到項目已經安裝了 Microsoft.WinUI 3 的包。從項目屬性里可以看到這就是個 .NET 5 的項目。

    Visual Studio 生成的第二個項目是一個 Windows 應用程序打包項目,該項目經配置后可將應用生成為適合部署的 MSIX 程序包。 也就是說 UWP 項目中用於打包的部分被獨立出來了。這個項目還應該是解決方案的啟動項目。運行這個項目后創建的應用會添加到開始菜單中,這點也和UWP一樣。

    到這裏為止都和預期的一樣,我之後還嘗試了將 UWP 應用移植到 WinUI ,基本上只需要將 Windows.UI 命名空間改為 Microsoft.UI就可以了,XAML 和 C# 代碼完全不用變。只可惜目前 WinUI 還很簡陋,Win2D、Community Toolkit 等微軟自己發布的 UWP 包都還沒有 WinUI 版本。而且沒有設計視圖,XAML 視圖也沒有智能感知,現在想要用 WinUI做些什麼有趣的項目會很困難。不過從目前的移植難度上來看,將來正式發布后應該可以完整地將 UWP 的 UI 的開發經驗運用在 WinUI 上。

    4. 和 WPF 及 UWP 進行對比

    既然 WinUI 3 開發模式和 WPF 及 UWP 都很像,我當然對它們之間的對比很感興趣。

    命名

    首先說說命名,“WinUI” 光這個名字就 Win 了。 “UWP” 太高雅,我敢打賭國內有些 UWP 的開發(例如我)都不能好好地把 UWP 的全稱拼出來;“WPF” 好些,但 WPF 的含義也讓人很疑惑。而 Windows UI 簡稱 WinUI ,意義和發音都很清晰明確。不過這三個都比很多人都不會讀的 “Xamarin” 強多了。

    可是有了 WinUI 3 ,就會有人問“那 WinUI 2 呢?”WinUI 2是一個 UWP 的控件庫,當然的只能用在 UWP 上。這就很尷尬了,WinUI 的 3 和 2 根本不是同一個概念,實在很容易讓人混淆,說不定以後會把後綴的 3 去掉(我這篇文章就常常懶得理寫這個3)。而且 UWP 中代碼的命名空間以 Windows.UI 開頭,在 WinUI 3 中則 Microsoft.UI ,按着 Office 365 改名為 Microsoft 365、Bind Ads 改名為 Microsoft Advertising 這些經驗,該不會以後 WinUI 可能改名為 Microsoft UI ,簡稱 MiUI 吧?

    權限

    權限方面是 WinUI 的一個亮點,因為它本質上就是個 Win32 程序,可以放開手腳隨便來。相對的 UWP 有很嚴格的權限限制,開發 UWP 時常常會感到綁手綁腳。例如下面這段代碼,大部分 WPF 開發者都難以想象只是最小化 UWP 程序而已,它就不能好好運行了:

    int count = 0;
    DispatcherTimer timer = new DispatcherTimer();
    timer.Interval = TimeSpan.FromSeconds(1);
    timer.Tick += (s, e) =>
      {
          myButton.Content = count++;
      };
    timer.Start();
    

    UWP 的生命周期如上圖,當 UWP 處於 background 運行或 suspended 狀態時應用基本處於暫停狀態,也也不會處理UI功能。我明白這是 UWP 為了省電、安全等原因才這樣設計,但對開發人員來說真的太不方便。而 WinUI 應用基本上就是個 Win32 應用,目前看來不會有這些坑。

    開發體驗

    說起開發體驗,WPF 好歹還算正常,Visual Studio 的設計視圖運行正常,編譯起來也快。UWP 編譯很慢,設計視圖經常出問題,Blend 也時好時壞把設計師都氣跑了。就算完全按着官方的文檔完成一個 UWP App,甚至一行代碼都不改,發布到商店后還是有可能崩潰。而對於應用商店,真是千言萬語彙聚成一個草花頭。

    現在 WinUI 的 XAML 視圖連智能感知都沒有,也沒有設計視圖,實在沒法談開發體驗。很難猜測正式發布的時候會怎麼樣,希望至少和WPF保持一致吧。

    性能

    WPF 總是給人“慢”的印象,除了因為在它剛出來的時候(10年前)電腦性能不夠導致留下了刻板印象,還有一個主要原因是:它真的很慢。

    UWP 的 XAML 有很優秀的性能表現,除此之外為了照顧已經不存在的 Windows Phone 的貧弱性能,很多控件模版都經過精心設計並大幅簡化。

    為了驗證 WinUI 的性能我寫了下面這些代碼,然後分別移植到 WPF .Net Framework 4.8、WPF .NET 5、UWP、WinUI(WPF 和 UWP/WinUI 的代碼稍微有一點不同):

    for (int i = 0; i < 50; i++)
    {
        var rectangle = new Rectangle
        {
            Height = 500,
            Width = 500,
            Opacity = ((double)i + 40) / 100d,
            RadiusX = 108,
            RadiusY = 98,
            StrokeThickness = 3,
            Stroke = new SolidColorBrush(Color.FromArgb(255, 75, 75, (byte)(i * 250d / 50d))),
            RenderTransformOrigin = new Point(0.5, 0.5)
        };
        Root.Children.Add(rectangle);
        var angle = i * 360d / 50d;
        var transform = new RotateTransform
        {
            Angle = angle
        };
    
        rectangle.RenderTransform = transform;
    
        var storyboard = new Storyboard();
        storyboard.Children.Add(new DoubleAnimation { Duration = TimeSpan.FromSeconds(1), From = angle, To = angle + 360 });
        Storyboard.SetTarget(storyboard, transform);
        Storyboard.SetTargetProperty(storyboard, "Angle");
        storyboard.RepeatBehavior = RepeatBehavior.Forever;
        storyboard.Begin();
    }
    

    上面這段代碼是讓50個矩形旋轉,十分考驗 WPF 的性能。結果可以說出乎意料。

    CPU 內存 GPU
    WPF .NET Framework 4.8 12 60 76
    WPF .NET 5.0 12 85 72
    UWP 3 28 36
    WinUI 5 65 95

    我的環境是 i7-6820HQ 及集成顯卡。WPF 平台佔用 70 多%的 GPU,這我大致能猜到。UWP 十分流暢,GPU 只佔用 WPF 的一半,CPU 和 內存都有出色表現,不過我還以為會更低的。

    WinUI 這個濃眉大眼的我真的萬萬沒想到,不僅掉幀明顯,還佔用了幾乎 100% GPU,也就是說它連這麼簡單的代碼都跑不起來。()順便一提,將測試代碼中旋轉的矩形減少為10個,WPF 的程序佔用 32% GPU,而 WinUI 佔用 70 多%。)

    從上面的數據基本可以說明,WinUI 離設計目標還十分遙遠,畢竟是預覽版,還有一年半載可以慢慢優化。

    5. 結語

    總的來說微軟雄心勃勃,可是現在拿出來的 WinUI 預覽版還差得太遠,功能未完善,性能不及預期。我覺得大致方向沒錯,WinUI 對 C++、WPF、UWP 開發者都是個新的工具新的機遇,可以關注一下。

    6. Q & A

    Windows 7 怎麼辦?

    按微軟公布的路線圖,再包括跳票等因素,等 WinUI 真正可用時 Windows 7 已停止更新很久,到時 Windows 7 的佔有率可能已經下降到開發者不會關心的程度。

    基於 .NET Core 的 Wpf 還是 WinUI?

    假使不想花精力將現有項目遷移到 WinUI,或者對來自 UWP 的 WinUI 沒信心,又或者舍不得 Windows 7 的用戶,並且對觸摸沒需求,當然可以繼續選用 WPF,基於 .NET Core 的 WPF 會是個很好的選擇。

    MAUI 還是 WinUI ?

    MAUI 還在很遙遠的將來(2021年11月),我沒試玩過,所以不好評價。如果有跨平台需求當然只能選 MAUI,如果 WinUI 團隊技高一籌實現了 MAUI 難以企及的超高性能,那就選 WinUI。不過 MAUI 這個名字太過普通/普遍,可能會被逼着改名吧。

    那 UWP 呢?

    權限受限的 UWP 可以說是人畜無害,對用戶來說可能也是個不錯的選擇。而且 UWP 還支持 Xbox 和 Hololens 等平台,目前看來還是有它的市場。

    Winforms 呢?

    人只有忘卻了過去,才能好好活着。

    WinUI 有未來嗎?

    我做了好多年 Silverlight 開發,買了5、6部 Windows Phone 手機,寫了幾十篇 UWP 文章,根據我豐富的經驗,我可以肯定 WinUI 是有未來的。

    8. 參考

    WinUI – The modern native UI platform of Windows.

    Introducing WinUI 3 Preview 1 – Windows Developer Blog

    Get started with WinUI 3 for desktop apps Microsoft Docs

    GitHub – microsoft_microsoft-ui-xaml

    Windows UI Library Roadmap

    WinUI 3.0_ The future of Windows controls

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※回頭車貨運收費標準

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※推薦評價好的iphone維修中心

    ※教你寫出一流的銷售文案?

    台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

    台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

  • 12萬左右到底是買SUV還是轎車比較好?

    12萬左右到底是買SUV還是轎車比較好?

    誠然,1。6L發動機在扭矩輸出方面弱於1。2T,但是居家過日子,還是1。6L會更讓人省心。1。6L+CVT的這套動力組合,雖然給不了你太多激情,但是輸出平順線性,易於操控,質量可靠,就像春雨一樣,潤物細無聲。得益於較高的車身,即便精英版配有天窗,頭部空間依然很充裕。

    前言

    12萬左右買SUV還是轎車,估計這是許多人糾結的問題。但實際上問題其實很簡單,為何這麼說?下面聽我娓娓道來。

    首先這個價位,能挑選的主流合資小型SUV是幾乎沒有的。剩下一些非主流的貨,例如創酷與2008,這兩車是比小型SUV還要小一點點的車,因此我也不作推薦。

    在12萬內想買到SUV就唯有投身自主品牌的懷抱,但是買轎車卻有許多花樣選擇。所以我就推薦幾款自主品牌的SUV與合資家轎來給各位參考一下。

    廣汽乘用車-傳祺GS4

    2017款 200T G-DCT兩驅舒適版

    指導價:11.58萬

    編者點評:

    GS4的雙離合變速箱算是自主品牌當中匹配較為完善的一個,無論是高速巡航,還是低速跟車都表現得相當出色,不會展露出明顯的頓挫。同時,由於雙離合變速箱的傳動效率較高,其百公里綜合油耗在7.8L左右,在同級別中難遇敵手。

    底盤也是GS4一個最大的亮點,當車子碾過不平的路面時,懸架總能很好地吸收震動,給人滿滿的厚實感。更難能可貴的是,遇到大坑窪時,GS4依舊可以不露餡,不會讓乘客有種懸架極限已到的感覺。

    廣汽豐田-雷凌

    2016款 1.6G CVT精英版

    指導價:12.48萬

    編者點評:

    自從雷凌出了1.2T發動機以後,1.6L的日子恐怕即將到頭,所以現在終端也會有1萬塊以上的優惠,絕對是抄底的好時機。停產不代表1.6L這款發動機不行,相反地,這款發動機是日本原裝進口,各種配合精度都會優於國產。誠然,1.6L發動機在扭矩輸出方面弱於1.2T,但是居家過日子,還是1.6L會更讓人省心。

    1.6L+CVT的這套動力組合,雖然給不了你太多激情,但是輸出平順線性,易於操控,質量可靠,就像春雨一樣,潤物細無聲。得益於較高的車身,即便精英版配有天窗,頭部空間依然很充裕。同時,後排地台全平還配有中央頭枕,坐在中間的乘客也不會太難受,這點想得很周到。

    一汽-大眾-寶來

    2016款 1.6L 自動時尚型

    指導價:11.98萬

    編者點評:

    寶來剛出的時候,許多人都針對其拉皮車的身份責罵一番。但是,是否是舊平台其實並不十分重要,關鍵還是要看實際的產品力。從這方面來說,寶來的表現還是不錯的。1.6L+6擋手自一體的動力組合,動力還算輕快,變速箱的邏輯清晰,換擋平順,高速巡航時也有很好的油耗表現。

    懸挂濾震有韌性,行駛質感有所提升,座椅也變寬大,坐到裏面感覺更舒適。缺點也是有一點點,中控台並沒有重新設計,顯得有點老氣,整車的做工精細度不足,一些接縫處的間隙較大。

    編者總結:

    雖然SUV現在銷售火爆,但是同品牌下的SUV定價多數都高轎車那麼一些。12萬這個價錢左右想買車,如果不是對SUV有剛性需求的, 還是建議買合資家轎。現在的國產SUV儘管發展得紅紅火火,但是在可靠性上與合資車型依舊有差距,為了日後省心地過日子,合資家轎會是更好的選擇。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※別再煩惱如何寫文案,掌握八大原則!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※回頭車貨運收費標準

  • 讓昂科威、冠道震驚!這輛全新中型SUV有9個擋

    讓昂科威、冠道震驚!這輛全新中型SUV有9個擋

    98-32。98萬冠道就是採用了2。0T+9AT動力總成的熱點車型,這樣的動力總成同級少有。而冠道上的9AT與發動機配合默契,並且車速達到110km/h以上時,變速箱就能升到第9擋。所以探界者也要在動力匹配上多下功夫了。上汽通用別克-昂科威指導價:20。

    日前,雪佛蘭官方正式發布了一款全新的9速自動變速箱,而這款變速箱將先搭載在海外版的邁銳寶上。另外,國產版的雪佛蘭中型SUV探界者2.0T車型也會優先搭載這款變速箱!

    此變速箱的代號為Hydra-Matic 9T50,是適用於前驅橫置平台的變速箱,而它的特點在於各個擋位間齒比綿密,而第九擋的齒比達到了0.62,是一個亮眼的水平。

    雪佛蘭官方稱這款9AT變速箱會比現在各車型上使用的6AT變速箱在燃油經濟性方面提高3%!

    而且這款9AT變速箱採用單向離合器,讓它的體積相對緊湊,和老款6AT變速箱相差無幾。

    探界者將搭載這款9AT變速箱

    探界者的2.0T車型將搭載這款9AT變速箱,該2.0T渦輪增壓發動機的最大功率256馬力、峰值扭矩352牛米!

    搭配9AT變速箱有望提高車型的行駛平順性、降低續航發動機噪音、降低油耗等!

    另外,探界者作為雪佛蘭在國內生產的旗艦SUV車型,它搭載9AT變速箱,更有利於其樹立品牌形象。而這也會成為消費者選擇探界者的重要原因之一,所以實際表現值得期待。

    競爭對手

    廣汽本田-冠道

    指導價:26.98-32.98萬

    冠道就是採用了2.0T+9AT動力總成的熱點車型,這樣的動力總成同級少有。而冠道上的9AT與發動機配合默契,並且車速達到110km/h以上時,變速箱就能升到第9擋!所以探界者也要在動力匹配上多下功夫了。

    上汽通用別克-昂科威

    指導價:20.99-34.99萬

    銷量一直強勢的昂科威與探界者比較類似,而現款的昂科威2.0T車型採用的是6擋手自一體變速箱。未來改款的昂科威是否也會搭載9擋手自一體變速箱?

    編者語:

    隨着各個品牌對變速箱的研發投入更多,9AT變速箱不再是豪華品牌所獨有的。這對於我們消費者來說,選擇更多自然是好事。而探界者有望在2017年第一季度上市,它的表現如何?我們一起期待吧。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※別再煩惱如何寫文案,掌握八大原則!

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※超省錢租車方案

    ※教你寫出一流的銷售文案?

    網頁設計最專業,超強功能平台可客製化

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

  • 這些車空間比SUV好 舒適性不輸轎車 關鍵B格夠高

    這些車空間比SUV好 舒適性不輸轎車 關鍵B格夠高

    40萬大家知道寶馬是操控的王者,那麼3系旅行版可謂是在售旅行車當中兼顧駕駛樂趣和舒適性的佼佼者,雙腎型的進氣格柵非常的熟悉,還有犀利的天使眼大燈,雖說是注重操控的車子,但配置上還是挺豐富的,無鑰匙進入/啟動、感應電動後備箱、發動機啟停等配置非常豐富。

    準備買車的你是否也想過這個問題

    買個三廂車吧又太普遍了

    看上兩廂車又覺得太小

    嫌棄SUV的操控性很一般

    家庭首選的MpV又顯得太笨重

    這時候旅行車可能就是你的不二之選

    作為歐洲人最喜愛的車型之一

    旅行車兼備了轎車和MpV的實用性

    也同時擁有者SUV良好的通過性

    今天就為大家介紹一下旅行車

    沃爾沃(進口)-V60

    指導價:30.99-63.69萬

    旅行車這類在歐洲隨處可見的家用車多年來都無法討國人的喜愛,更多的是被當成少數人追求的個性和另類車,隨着吉利收購了沃爾沃之後,旗下的車型是越來越年輕化了,外觀也更容易受國人所接受,估計下一換代車型就會使用XC90最新的家族式前臉,雷神之錘也會裝備上去,而且現在的終端優惠巨大,性價比很高。

    內飾設計還是那套經典的数字鍵盤式中控,似乎有些脫離時代的腳步了,4635*1866*1484mm的車身尺寸,2776mm的軸距,加上方正的造型設計,內部空間還是很寬敞的,屬於那種能拉能跑的选手,喜歡跨界風格可選cross四驅版本,追求高性能可以選擇百公里加速4.8秒的polestar版本。

    寶馬(進口)-3系

    指導價:39.96-68.40萬

    大家知道寶馬是操控的王者,那麼3系旅行版可謂是在售旅行車當中兼顧駕駛樂趣和舒適性的佼佼者,雙腎型的進氣格柵非常的熟悉,還有犀利的天使眼大燈,雖說是注重操控的車子,但配置上還是挺豐富的,無鑰匙進入/啟動、感應電動後備箱、發動機啟停等配置非常豐富。

    車身尺寸和三廂版的一致為4628*1811*1476mm,軸距為2810mm,大尺寸的全景天窗為全系標配,相當厚道,乘坐空間則和短軸3系一致,最大亮點還是他的後備箱整體表現,後排座椅放倒后非常的平整,完全可以當床用了,又解鎖了很多高難度動作,而且儲物空間很人性化設計,很方便實用。

    奔馳(進口)-C級

    指導價:38.28-57.00萬

    大多數人都認為旅行車不就是以轎車為基礎,然後把後備箱加高到和車頂平齊么,奔馳C級旅行車表示不服,始終堅持這份情懷的它取得了不錯的成績,與前兩輛車不同的是,C200旅行版擁有漂亮的AMG運動套件,和18英寸的AMG式輪轂,看上去更吸引人的眼球。

    內飾是與三廂版奔馳C級沒有區別的,依然是豪華感十足,4729*1810*1457的車身尺寸,2840mm的軸距,乘坐空間是比較寬敞的,其後備箱的開后比較大,裝載物品非常方便,動力選擇上有小排量的1.6T(最大功率156馬力)車型選擇,相比於前兩款車型,家用性更強。

    總結:旅行車有着轎車般的舒適性和SUV空間上的靈活性,實用性更強,而這些豪華車終端優惠都很大,特別是沃爾沃V60性價比很高,20多萬就能擁有進口旅行車是相當划算的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※教你寫出一流的銷售文案?

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※回頭車貨運收費標準

    ※別再煩惱如何寫文案,掌握八大原則!

    ※超省錢租車方案

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※推薦台中搬家公司優質服務,可到府估價

  • 這款SUV國產以後只要十幾萬,奇駿虎軀一震

    這款SUV國產以後只要十幾萬,奇駿虎軀一震

    驅動方式上,是兩者最大的差別,奇駿是前驅,而歐藍德是適時四驅。歐藍德的這套四驅系統雖然算不上很強大,但是應付一些泥濘路面總比前驅車型要來得更強。內飾設計奇駿的中控台看上去很工整,各種按鈕的布置也符合人機工程學的設計,烤黑鋼琴漆面板讓整車多了幾分高級感。

    前言

    自從奇駿更新換代以後,憑藉著年輕的外觀與依舊出色的產品力,迅速地霸佔了合資緊湊型SUV銷量的前十名。但是,歐藍德國產以後將對奇駿的地位發起衝擊。

    進口的歐藍德起步售價在20萬元以上,明顯缺乏競爭力。國產以後,價格下探到15.98萬,與奇駿的售價區間高度吻合。實際對比,誰更勝一籌?下面我就以兩款售價相近的車型來做對比。

    廣汽三菱-歐藍德

    2016款 2.4L 四驅精英版 5座

    指導價:18.98萬

    東風日產-奇駿

    2014款 2.0L CVT舒適版 2WD

    指導價:19.68萬

    動力總成

    歐藍德是2.4L發動機配CVT變速箱(模擬6擋),最大輸出192馬力與235牛米。而奇駿則是2.0L發動機+CVT變速箱(模擬7擋),最大輸出150馬力與200牛米。從數據上就可以看出歐藍德的動力輸出要比奇駿的高上不少,兩者均採用CVT變速箱,所以在行駛起來都是追求平順。

    底盤結構

    歐藍德的底盤

    奇駿的底盤

    奇駿與歐藍德均採用前麥弗遜式獨立懸架,后多連桿獨立懸架的底盤構造。不過,奇駿在前後懸架上均加入了橫向穩定桿,這樣可以有效地對車身的側傾進行抑制。驅動方式上,是兩者最大的差別,奇駿是前驅,而歐藍德是適時四驅。歐藍德的這套四驅系統雖然算不上很強大,但是應付一些泥濘路面總比前驅車型要來得更強。

    內飾設計

    奇駿的中控台看上去很工整,各種按鈕的布置也符合人機工程學的設計,烤黑鋼琴漆面板讓整車多了幾分高級感。

    歐藍德的中控看上去更加圓滑,設計也更為簡約,按鈕不多,功能多集合於中控屏上。整體給人感覺不如奇駿高級。不過,方向盤上那兩塊換擋撥片卻顯得格外醒目。

    後排空間

    奇駿的後排

    歐藍德的後排

    奇駿的後排中央

    歐藍德的後排中央

    歐藍德的後排空間還比較大,就是坐墊偏短,身高174cm的體驗者坐到後排也能有兩拳有多的腿部空間。奇駿的腿部空間表現與歐藍德大致相同,只是坐墊長度會更長,對腿部的承托更加好。兩者的後排中央都有一定拱起,但是歐藍德的拱起更高。

    隔音表現

    在實際測試中,歐藍德無論在怠速、60km/h、80km/h和120km/h的情況下,隔音表現都要優於奇駿不少。

    配置對比

    配置方面的對比,歐藍德處於一個很明顯的領先狀態,具體的差距可以看下圖的對比。

    油耗與保養費用對比

    多位車主給出的奇駿百公里綜合油耗為8.9L,而歐藍德則為9.9L,這也符合預期水平。首先,歐藍德的排量要比奇駿大,其次它採用了四驅系統,所以高出奇駿1L的百公里綜合油耗也是完全可以接受的。

    奇駿6萬公里的總保養費用為5225元,不過這數據是按礦物油來算的,如果換成半合成機油,費用會相應增加。歐藍德6萬公里的總保養費用為8716元,高出奇駿不少,而且採用的也同為礦物質油。

    編者總結:

    歐藍德國產以後的性價比確實比以前要高了不少,而且各方面的表現依舊不錯。如果對油耗與內飾設計不太敏感的話,歐藍德會是一個更好的選擇,起碼它的四驅系統能帶你去見識更遠的風景。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※超省錢租車方案

    ※別再煩惱如何寫文案,掌握八大原則!

    ※回頭車貨運收費標準

    ※教你寫出一流的銷售文案?

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    網頁設計最專業,超強功能平台可客製化

  • 划時代產品駕到 樂視戰略夥伴FF首款量產車終露真容

    划時代產品駕到 樂視戰略夥伴FF首款量產車終露真容

    與此同時,某知名媒體人也在其官方微博曬出了FF官方發出的邀請函,而樂視掌門人賈躍亭也轉發此微博並附言:“First Forward。全球首發。戰略夥伴FF,新物種,如何重構百年汽車產業。1。3給你答案。”從今年CES上FF的品牌首秀,到如今首款量產車落地在即,不到一年的時間,FF的發展速度讓人驚嘆。

    12月7日, 樂視戰略夥伴Faraday Future(簡稱FF)在其官方渠道發出了一張題為“新物種·重構百年汽車產業”的官方海報,除了公布其將於明年1月3日正式發布以外,實車的前臉設計細節也首次公之於眾。

    從海報中可以看到,貫穿車頭的日間行車燈帶最為亮眼。這一設計與其概念車FF ZERO1“UFO線”的設計極為相似,未來或將成為FF家族的標誌性設計元素。從圖片判斷,FF首款量產車日間行車燈或將使用LED光源,其線條環抱整個前臉。除了具有極具辨識度的造型設計以外,未來或將有更多功能會被集成其中,給人無盡的想象空間。

    FF首款量產車細節曝光

    由燈帶包裹的大燈、轉向燈等信息在該圖上還無從識別,但以FF大膽和極具未來感的設計風格來看,實車亮相時或許還將帶來一些超乎以往的感官體驗。

    此外,之前曝光的海報中疑似FF前臉包圍的設計也得到了證實,這條由FF Logo圖紋組成的醒目光帶十分搶眼。與傳統車輛的實體Logo不同,FF的Logo或將採用可變燈組显示,科技感爆棚,逼格滿滿。

    除醒目的車輛前臉細節以外,車身的流線造型設計也非常漂亮。圓弧形的車輛線條從車頭一直延伸而下,兩條稜線將車輛分割開來,這樣的設計元素除了讓外形層次感更加分明以外還可能為整車帶來更好的空氣動力學特性,風阻係數也將進一步降低。

    此前,FF對首款量產車進行了多輪路測,並完成了對高速穩定性和放電效率的階段性測試,相信整車已經為發布做好了充分的準備。

    與此同時,某知名媒體人也在其官方微博曬出了FF官方發出的邀請函,而樂視掌門人賈躍亭也轉發此微博並附言:“First Forward!全球首發!戰略夥伴FF,新物種,如何重構百年汽車產業?1.3給你答案。”

    從今年CES上FF的品牌首秀,到如今首款量產車落地在即,不到一年的時間,FF的發展速度讓人驚嘆。作為汽車產業的新軍,FF想要打造的不只是一款划時代的互聯電動車產品,更是要為百年的汽車產業帶來顛覆性變革,徹底將人類出行邁進互聯網生態時代。

    眾所周知,FF的汽車團隊已經集合了包括電動化、車聯網、自動駕駛技術等全方面的頂級人才。這樣一家企業打造出的首款量產車,恐怕絕不僅僅是一款電動車這樣簡單。今年1月,FF與樂視達成了戰略合作,4月,雙方又共同成立了FF&LeFuture 人工智能研究院,並且研究院的初步成果也在今年的世界機器人大會上成功進行了階段性的展示。再者,樂視在車聯網、內容、應用、互聯網、雲等方面深耕已久,並且在EUI方面的技術積累也已十分成熟,因此這種深度的融合必將會在未來車輛上的應用與體驗方面帶來顛覆傳統的感受。

    如今,距離明年該車全球首發已經只有不到1個月的時間,而該車到底能給我們帶來什麼更多的驚喜,就讓我們拭目以待吧!本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※回頭車貨運收費標準

    ※推薦評價好的iphone維修中心

    ※超省錢租車方案

    台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

    ※推薦台中搬家公司優質服務,可到府估價

  • 大空間的5座車和高檔次的7座車,你會更喜歡哪輛?

    大空間的5座車和高檔次的7座車,你會更喜歡哪輛?

    兩車的實用性都很高,不過兩者的性格區別很大。冠道動力充沛,指向靈敏,裝載貨物空間大。而GL8乘坐空間更大,乘坐感受更為舒適,隔音濾震都相當出色。如果你喜歡駕駛,偶爾還會走走野外爛路,那冠道絕對是首選。不過如果你上有老下有小,可能還計劃生二胎,那麼舒適寬大的GL8會是更好的選擇。

    隨着時代發展,汽車已經逐漸變成每個家庭的必需品,許多人買車時考慮的第一要素就是車子夠不夠實用。而說到實用性,關於SUV和MpV哪個更實用的爭論一直都沒有消停過。今天就給大家對比一下兩款時下最熱門的SUV和MpV,本田冠道和全新別克GL8,看看哪一個能成為你的心頭好!

    總結:冠道和GL8的最大區別在於一個是採用5座布局,另一個採用的是7座布局。兩車的實用性都很高,不過兩者的性格區別很大。冠道動力充沛,指向靈敏,裝載貨物空間大;而GL8乘坐空間更大,乘坐感受更為舒適,隔音濾震都相當出色。如果你喜歡駕駛,偶爾還會走走野外爛路,那冠道絕對是首選;不過如果你上有老下有小,可能還計劃生二胎,那麼舒適寬大的GL8會是更好的選擇。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※回頭車貨運收費標準

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※推薦評價好的iphone維修中心

    ※教你寫出一流的銷售文案?

    台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

    台中搬家遵守搬運三大原則,讓您的家具不再被破壞!