動手造輪子:實現一個簡單的 AOP 框架

動手造輪子:實現一個簡單的 AOP 框架

Intro

最近實現了一個 AOP 框架 — FluentAspects,API 基本穩定了,寫篇文章分享一下這個 AOP 框架的設計。

整體設計

概覽

IProxyTypeFactory

用來生成代理類型,默認提供了基於 Emit 動態代理的實現,基於接口設計,可以擴展為其他實現方式

接口定義如下:

public interface IProxyTypeFactory
{
    Type CreateProxyType(Type serviceType);

    Type CreateProxyType(Type serviceType, Type implementType);
}

IProxyFactory

用來生成代理實例,默認實現是基於 IProxyTypeFactory 生成代理類型之後創建實例

接口定義如下:

public interface IProxyFactory
{
    object CreateProxy(Type serviceType, object[] arguments);

    object CreateProxy(Type serviceType, Type implementType, params object[] arguments);

    object CreateProxyWithTarget(Type serviceType, object implement, object[] arguments);
}

IInvocation

執行上下文,默認實現就是方法執行的上下文,包含了代理方法信息、被代理的方法信息、方法參數,返回值以及用來自定義擴展的一個 Properties 屬性

public interface IInvocation
{
    MethodInfo ProxyMethod { get; }

    object ProxyTarget { get; }

    MethodInfo Method { get; }

    object Target { get; }

    object[] Arguments { get; }

    Type[] GenericArguments { get; }

    object ReturnValue { get; set; }

    Dictionary<string, object> Properties { get; }
}

IInterceptor

攔截器,用來定義公用的處理邏輯,方法攔截處理方法

接口定義如下:

public interface IInterceptor
{
    Task Invoke(IInvocation invocation, Func<Task> next);
}

invocation 是方法執行的上下文,next 代表後續的邏輯處理,類似於 asp.net core 里的 next ,如果不想執行方面的方法不執行 next 邏輯即可

IInterceptorResolver

用來根據當前的執行上下文獲取到要執行的攔截器,默認是基於 FluentAPI 的實現,但是如果你特別想用基於 Attribute 的也是可以的,默認提供了一個 AttributeInterceotorResovler,你也可以自定義一個適合自己的 InterceptorResolver

public interface IInterceptorResolver
{
    IReadOnlyList<IInterceptor> ResolveInterceptors(IInvocation invocation);
}

IInvocationEnricher

上面 IInvocation 的定義中有一個用於擴展的 Properties,這個 enricher 主要就是基於 Properties 來豐富執行上下文信息的,比如說記錄 TraceId 等請求鏈路追蹤數據,構建方法執行鏈路等

public interface IEnricher<in TContext>
{
    void Enrich(TContext context);
}
public interface IInvocationEnricher : IEnricher<IInvocation>
{
}

AspectDelegate

AspectDelegate 是用來將構建要執行的代理方法的方法體的,首先執行註冊的 InvocationEnricher,豐富上下文信息,然後根據執行上下文獲取要執行的攔截器,構建一個執行委託,生成委託使用了之前分享過的 PipelineBuilder 構建中間件模式的攔截器,執行攔截器邏輯

// apply enrichers
foreach (var enricher in FluentAspects.AspectOptions.Enrichers)
{
    try
    {
        enricher.Enrich(invocation);
    }
    catch (Exception ex)
    {
        InvokeHelper.OnInvokeException?.Invoke(ex);
    }
}

// get delegate
var builder = PipelineBuilder.CreateAsync(completeFunc);
foreach (var interceptor in interceptors)
{
    builder.Use(interceptor.Invoke);
}
return builder.Build();

更多信息可以參考源碼: https://github.com/WeihanLi/WeihanLi.Common/blob/dev/src/WeihanLi.Common/Aspect/AspectDelegate.cs

使用示例

推薦和依賴注入結合使用,主要分為以微軟的注入框架為例,有兩種使用方式,一種是手動註冊代理服務,一種是自動批量註冊代理服務,來看下面的實例就明白了

手動註冊代理服務

使用方式一,手動註冊代理服務:

為了方便使用,提供了一些 AddProxy 的擴展方法:

IServiceCollection services = new ServiceCollection();
services.AddFluentAspects(options =>
    {
        // 註冊攔截器配置
        options.NoInterceptProperty<IFly>(f => f.Name);

        options.InterceptAll()
            .With<LogInterceptor>()
            ;
        options.InterceptMethod<DbContext>(x => x.Name == nameof(DbContext.SaveChanges)
                                                || x.Name == nameof(DbContext.SaveChangesAsync))
            .With<DbContextSaveInterceptor>()
            ;
        options.InterceptMethod<IFly>(f => f.Fly())
            .With<LogInterceptor>();
        options.InterceptType<IFly>()
            .With<LogInterceptor>();

        // 註冊 InvocationEnricher
        options
            .WithProperty("TraceId", "121212")
            ;
    });
// 使用 Castle 生成代理
services.AddFluentAspects(options =>
    {
        // 註冊攔截器配置
        options.NoInterceptProperty<IFly>(f => f.Name);

        options.InterceptAll()
            .With<LogInterceptor>()
            ;
        options.InterceptMethod<DbContext>(x => x.Name == nameof(DbContext.SaveChanges)
                                                || x.Name == nameof(DbContext.SaveChangesAsync))
            .With<DbContextSaveInterceptor>()
            ;
        options.InterceptMethod<IFly>(f => f.Fly())
            .With<LogInterceptor>();
        options.InterceptType<IFly>()
            .With<LogInterceptor>();

        // 註冊 InvocationEnricher
        options
            .WithProperty("TraceId", "121212")
            ;
    }, builder => builder.UseCastle());

services.AddTransientProxy<IFly, MonkeyKing>();
services.AddSingletonProxy<IEventBus, EventBus>();
services.AddDbContext<TestDbContext>(options =>
{
    options.UseInMemoryDatabase("Test");
});
services.AddScopedProxy<TestDbContext>();

var serviceProvider = services.BuildServiceProvider();

批量自動註冊代理服務

使用方式二,批量自動註冊代理服務:

IServiceCollection services = new ServiceCollection();
services.AddTransient<IFly, MonkeyKing>();
services.AddSingleton<IEventBus, EventBus>();
services.AddDbContext<TestDbContext>(options =>
{
    options.UseInMemoryDatabase("Test");
});

var serviceProvider = services.BuildFluentAspectsProvider(options =>
            {
                options.InterceptAll()
                    .With<TestOutputInterceptor>(output);
            });

// 使用 Castle 來生成代理
var serviceProvider = services.BuildFluentAspectsProvider(options =>
            {
                options.InterceptAll()
                    .With<TestOutputInterceptor>(output);
            }, builder => builder.UseCastle());

// 忽略命名空間為 Microsoft/System 的服務類型
var serviceProvider = services.BuildFluentAspectsProvider(options =>
            {
                options.InterceptAll()
                    .With<TestOutputInterceptor>(output);
            }, builder => builder.UseCastle(), t=> t.Namespace != null && (t.Namespace.StartWith("Microsft") ||t.Namespace.StartWith("Microsft")));

More

上面的兩種方式個人比較推薦使用第一種方式,需要攔截什麼就註冊什麼代理服務,自動註冊可能會生成很多不必要的代理服務,個人還是比較喜歡按需註冊的方式,更為可控。

這個框架還不是很完善,有一些地方還是需要優化的,目前還是在我自己的類庫中,因為我的類庫里要支持 net45,所以有一些不好的設計改起來不太方便,打算遷移出來作為一個單獨的組件,直接基於 netstandard2.0/netstandard2.1, 甩掉 netfx 的包袱。

Reference

  • https://github.com/WeihanLi/WeihanLi.Common/blob/dev/src/WeihanLi.Common/Aspect
  • https://www.cnblogs.com/weihanli/p/12700006.html

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

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

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

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

讀懂操作系統之虛擬內存TLB與緩存(cache)關係篇(四)

前言

前面我們講到通過TLB緩存頁表加快地址翻譯,通過上一節緩存原理的講解為本節做鋪墊引入TLB和緩存的關係,同時我們來完整梳理下從CPU產生虛擬地址最終映射為物理地址獲取數據的整個過程是怎樣的,若有錯誤之處,還請批評指正。

TLB和緩存串行訪問(Serial TLB & Cache Access)

這裡會跳過前面對虛擬頁號、虛擬頁偏移量、TLB索引和標記等的詳細分析和計算,不清楚的童鞋請先查看前面文章再來看本文。假設我們有14位的虛擬地址、12位的物理地址,每頁大小為64字節,如下:

 

 

同時假設已完全清楚虛擬地址和物理地址劃分,接下來則是針對虛擬地址和物理地址進行位劃分,如下:

同時我們假設TLB是通過組相聯來進行映射,TLB中有16個條目,4路相聯,所以TLB索引(TI)和TLB標記(TT)在虛擬地址中虛擬頁號進行位劃分如下: 

 

我們假設緩存採取直接映射的機制,緩存大小為64字節,每塊大小為4個字節,說明緩存有16塊即4位,位偏移為2位,所以緩存索引(CI)和緩存標記(CT)在物理地址中進行位劃分如下:

現假設讀取虛擬地址(0x0255),那麼將其劃分為VPN(0x09),VPO(0x15),然後將VPN劃分為TT(0x02)和TI(1)如下:

接下來通過TT(0x02)和TI(1)去查找TLB,如下:

此時我們會發現TLB缺失,緊接着通過VPN(0x0916 = 2110)去頁表中查找得到PPN(0x1716 = 2310),如下: 

 

因其PPO = VPO(0x15),所以計算出物理地址為(23 * 64+21 = 149310 = 0x5D516

然後根據上述物理地址劃分為CT(0x17)、CI(5)、CO(1),如下:

最後通過上述CT(0x17)和CI(5)去查找緩存,此時緩存命中,然後將數據發送到CPU,如下:

從CPU到獲取數據整個的過程是這樣的:【1】CPU產生虛擬地址【2】TLB翻譯成物理地址【3】TLB命中,將物理地址發送到緩存【4】緩存命中返回數據。其中每一個過程涉及到的細節,比如TLB缺失、頁缺失等等前面已有詳細講解,殊途同歸,大致過程則是如下圖解

通過如上可看出此時TLB與Cache是串行訪問的關係,這是最簡單同時也是比較慢的方式,因為不得不等待TLB翻譯完成后才去檢查緩存中是否有數據,如此一來將對CPU處理速度產生重大影響,涉及到大量內存訪問時間。

TLB和緩存并行訪問(Parallel TLB & Cache Access)

當前處理器最普遍的設計是採取TLB和Cache并行的方式,有些也稱之為重疊訪問(Overlapping TLB & Cache Access),從而提高訪問速度,那麼并行訪問到底是如何做的呢?有沒有什麼使用限制呢?這裏我們以Intel Skylake(英特爾第六代微處理器架構)為例來說明,其虛擬地址和物理地址結構大致如下:

看到上述結構我們可以發現物理地址中的PPN和緩存標記(CT)位數相等以及其他,英特爾這樣設計就是為了讓TLB和Cache可以并行訪問。TLB和Cache并行訪問原理:虛擬地址(VA)中的高階位即(VPN)用來查找TLB,而低階位(VPO)用來查找緩存。通過TLB將VPN映射到PPN,此時PPN作為緩存標記(CT),而將VPO中的低階位作為緩存偏移量(CO),高階位作為緩存索引(CI)。有了緩存標記和緩存索引我們就可以查詢到數據,比如CPU產生虛擬地址(0x7916 = 00011110012),此時通過并行訪問則為如下圖解

我們結合上述圖解繼續進行分析將并行訪問分為三種情況,比如上緩存中的tag = 11,同時我們產生的PPN = tag = 11,說明緩存標記等於物理頁號,同時緩存命中,最終返回數據B5給CPU(其一)。假設產生的緩存標記不是11,那麼說明緩存標記不等於頁號或者緩存缺失,但此時TLB命中,那麼將通過TLB中的物理頁號直接訪問主存(其二)。否則做標準的虛擬地址翻譯(其三)。為便於大家理解,我們通過偽代碼形式來說明:

if (cache hit && cache tag = PPN)
  //返回數據到CPU
else if (cache miss || cache tag != PPN && TLB hit) 
  //通過TLB中的PPN訪問主存
else
  //標準地址翻譯

兩種緩存架構(Cache & TLB Access)

緩存索引(Cache index)用於查找數據在緩存中的索引位置,而緩存標記(Cache tag)則是驗證緩存中有哪些數據。從上述對并行訪問原理講解我們知道將虛擬地址中的虛擬偏移量可作為物理緩存索引,這裏我們稱之為虛擬索引,同時我們將VPN轉換為PPN,這種模式稱之為虛擬索引、物理標記緩存架構(Virtual-indexed Physically-tagged Caches),其實我們也可以將虛擬地址中的偏移量作為緩存標記,也就是說虛擬地址中的偏移量(VPO)既作為緩存索引也作為緩存標記,這種緩存架構成為虛擬索引、虛擬標記緩存架構(Virtual-indexed Virtually-tagged Caches),也叫虛擬地址緩存(Virtual Address Caches),接下來我們來分析這兩種緩存架構。

虛擬索引、虛擬標記緩存(Virtual-indexed Virtually-tagged Caches)

 

 

此種緩存架構讓緩存保存虛擬地址,但是現代處理器極少使用這種緩存設計,雖然很塊,但是處理起來很複雜, 比如進行上下文切換時需要刷新緩存(當然可以在地址空間添加ASID),但是即使這樣,由於頁面可以共享而造成處理頁面別名問題,用於直接映射緩存的解決方案,共享頁面的VA必須在緩存索引位中一致,確保訪問同一PA的所有VA將在直接映射的緩存(早期SPARC)中發生衝突,所以大多處理器採用第二種(VA-PA)緩存架構。

虛擬索引、物理標記緩存(Virtual-indexed Physically-tagged Caches)

 

并行TLB & Cache訪問採取的就是此種架構,此種架構要求緩存索引完全包含在虛擬地址中的虛擬偏移量中。緩存標記和PPN相等(當然第一種)當查詢緩存時也執行TLB訪問,它是當前處理器最常見的設計,我們知道緩存使用的是物理地址,而CPU產生的是虛擬地址,這也就意味着沒有TLB就無法完成緩存查找。前面我們了解到緩存數據存儲結構存在直接映射、組相聯、全相聯三種結構,在此種緩存架構中有使用限制,我們首先來看看直接映射。

 

并行訪問的本質在於緩存查詢數據無需等待TLB完成,二者可同時開始,所以當兩者訪問完成后需要進行比較,如果(cache size <=  page size)即(C = L + b) <= P才有效,因為對於緩存的所有輸入都無需進行任何翻譯。

通過組相聯增加了緩存的關聯性從而減少索引到緩存所需地址的位數,在訪問完成後進行比較,如果(cache size) / (associativity) ≤ page size即(C <= P + A)才有效。對於緩存和TLB都採用的組相聯從而減少缺失率,所以對於并行訪問中的緩存組相聯映射必須滿足(cache size) / (associativity) ≤ page size。那麼問題來了,如果一個緩存大小為64KB,採用2路相聯,頁大小>=4k,那麼可以進行并行訪問TLB & Cache嗎?很顯然不能,如下

緩存大小:64KB = 216     ————-》 C = 16

組相聯:2                        ————-》 A = 1

頁大小: 4KB = 212        ————–》P >= 12

那麼問題又來了,對於一個16位的虛擬地址,頁大小為64字節,緩存大小為256b,採用8路相聯的1級緩存且有16塊,那麼可以并行訪問TLB &Cache嗎?請輸出原因。

總結

本節我們詳細介紹了TLB &Cache二者的關係,採用并行訪問通過VPN查找TLB,VPO查詢緩存同時進行來提高訪問速度。下一節我們進入頁表數據結構的詳細講解,謝謝。 

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

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

防疫封鎖 馬達加斯加狐猴族群獲得喘息

摘錄自2020年9月24日公視報導

安達西貝自然保護區是馬達加斯加島生態觀光的熱門地點之一,過去五個月因為新冠病毒疫情造成的封鎖以及邊境管制,當地最具代表性的動物狐猴,在原始雨林裡享受了沒有人類嘈雜群聚,寧靜自得的生活。島內九月起放寬了封鎖政策,觀光人數開始緩步回升,但因為國際航班仍然停擺,多數是馬達加斯加人自己的島內旅遊。

3月起陷入封鎖寒冬的旅遊業者,樂見顧客回歸,但富裕的外國觀光客進不來,仍然入不敷出。經濟壓力也傷害了自然環境。森林嚮導發現,最近林木被濫伐破壞的情況比過去30年都要嚴重。

馬達加斯加的旅遊業佔全國經濟的7%,堪稱重要支柱,而雨林生態體系脆弱,全國上百種的狐猴,幾乎都已經因為盜獵、暖化與森林砍伐,名列國際自然保護聯盟的紅色瀕危名單,其中30種更已經是極度瀕危,離滅絕只差一步。

生物多樣性
國際新聞
馬達加斯加
防疫
狐猴
動物與大環境變遷

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

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

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

福島輻射污染土再利用 實驗種出超標作物

文:宋瑞文(媽媽監督核電廠聯盟特約撰述)

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

福島農夫的七種土質實測:土壤輻射污染越高,作物污染越嚴重

文:宋瑞文(媽媽監督核電廠聯盟特約撰述)

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

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

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

食腦變形蟲入侵美德州水源 當局急籲勿用自來水

摘錄自2020年09月27日中央通訊社美國報導

美國德州雷克傑克森市(Lake Jackson)當局呼籲居民不要使用自來水,因為水中可能含有致命的食腦微生物福氏內格里蟲(Naegleria fowleri)。

德州環境品質委員會(Texas Commission on Environmental Quality)表示,在「自來水系統獲得充分沖刷,且採檢樣本顯示水質已安全無虞可供使用」以前,雷克傑克森居民應該持續避免使用自來水。

福氏內格里蟲蹤跡遍及世界各地。美國疾病管制暨預防中心(CDC)表示,美國境內多數感染案例都出現在南方各州,福氏內格里蟲透過受污染的淡水感染人類,經由鼻腔進入人體使人致病。若遭感染,致死率相當高。感染者會出現發燒、噁心、嘔吐,以及頸部僵硬和頭痛等症狀,多數感染者會在1週內喪命。這類病例在美國境內相當罕見,2009年到2018年間僅傳出34起案例。

污染治理
國際新聞
德州
自來水
CDC
水污染

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

花15萬買了輛看起來值50萬的國產車?

VV5的儲物格的數量不算特別多,擋把前方的儲物格並不能固定打開不知道是否是個例,除了常規的杯架等儲物空間以外,再也沒有其他的儲物格,隨身的物品需要合理安置。後備箱空間規整,兩側有網兜可以放一下容易滾動的物品。

很多人的心裏認為:自主品牌就是低廉,就是low的體現,買自主品牌車就是傻。其實,我們不應該人云亦云,雖然自主品牌的技術沉澱沒有外國傳統汽車大廠深厚,但我們也不應該一味地貶低,自主品牌需要我們的鼓勵和支持。

就像我們今天試駕的WEY VV5一樣,不熟悉WEY的朋友不用着急,簡單來說WEY是長城汽車旗下的子品牌,主打高端市場。WEY這個品牌在上市之初就受到質疑:自主品牌到底能不能打造豪華車?那麼到底中國的豪華車應該是怎樣的?帶你一一揭曉。

第一眼看到VV5的時候,有種熟悉又陌生的感覺,整體來看VV5跟大哥VV7相似度很高,如果不把兩輛車停在一起,很難分辨清楚到底是大哥還是小弟。VV5的車身尺寸都比VV7小一圈,也是更加符合VV5的定位。轎跑的造型動感十足,短小的尾部個人認為不太協調,沒有了轎跑車優雅流暢的尾部線條。LED大燈是VV5的標配,並且全車多處WEY車標演變過來的元素,例如豎條狀的LED日間行車燈,豎條狀的鑰匙等,無處不強調WEY的家族基因。20寸的大輪轂是頂配車型專屬,視覺效果滿分,尾部四齣的排氣也相當唬人。

走進車內,國人喜歡的豪華感統統奉上,例如真皮座椅,懸浮式中央显示屏,全景天窗等“高大上”的配置全部具備,中控台除了懸浮的中央显示屏以外,其餘的裝飾幾乎為零,層次感也不足,好在軟塑料的質感不錯。平底的方向盤給人一絲運動感,不過對於一台SUV來說,裝飾作用>實際效果,並且手很容易誤觸到多功能按鍵。中央多媒體系統依靠擋把后的旋鈕+按鈕控制,兩側則是行車輔助功能控制區域,例如車道保持,盲區監測,自動泊車等。全液晶儀錶很有科技感,能夠切換3種不同的主題,显示內容也不錯,日常使用的信息均有显示。

從外觀上看,VV5的漆面以及做工及格,同一塊鈑上下的厚度差別有點大,整體在97-115μm之間,縫隙還算不錯,除了尾門稍有點大以外,其餘的都在正常水平之內。

本次試駕的VV5使用了紅內飾,在運動感的營造上不錯,但可能不能滿足大部分人的需求。六向電動調節的座椅包裹性一般,坐起來適中,可能為了長途乘車不會太累而設計。

VV5的儲物格的數量不算特別多,擋把前方的儲物格並不能固定打開不知道是否是個例,除了常規的杯架等儲物空間以外,再也沒有其他的儲物格,隨身的物品需要合理安置。後備箱空間規整,兩側有網兜可以放一下容易滾動的物品。

VV5全系只有一種動力總成,2.0T+7速雙離合變速箱的組合,最大馬力197ps,最大扭矩355N*m,看起來參數不錯,發動機艙用塑料板封起來,看起來比較整潔,但不利於機艙的散熱。

雙離合變速箱也是偏向舒適調校,換擋動作不快,換來的是平順性。在中段加速的時候,變速箱不願降擋,而且降擋速度很慢,給下動力請求后需要等待一會才會降擋。總體來說變速箱表現一般。

VV5的百公里加速時間為9.5S,制動距離為37.8米,表現優秀。

開起來發動機的渦輪遲滯明顯,號稱2000rpm就能達到峰值扭矩,但開起並沒有什麼爆發感,整體動力輸出偏平順,日常使用還好,激烈一點駕駛就有點不盡人意了。

VV5的轉向手感有3種模式可調,總體來說普通模式會稍微適合日常駕駛,方向盤隔絕掉所有的路感,盡量做到舒適。

底盤的厚實感VV5的確做得不錯,懸挂的表現則不盡人意,前段硬後段軟,快速過彎支撐性一般,走過連續顛簸,車廂會有一定的晃動。

VV5的隔音在同級別來說是前列水平,整體的隔音降噪都不錯,發動機噪音是VV5主要的噪音源,其餘的風噪路噪都隔絕得很好。

VV5全系只有兩款車型,超豪型和旗艦型,售價分別為15.00萬和16.30萬,兩者之間配置差距不大,如果預算充足可以選擇旗艦型,無論是20寸輪轂還是全液晶儀錶盤都是比較彰顯科技感,而車道保持系統會讓你在巡航的時候更安全。

總的來講,VV5的表現可以用“第一眼美女”來形容,第一眼看過去,轎跑的造型,大輪轂,全景天窗,真皮內飾,全液晶儀錶盤通通配備,給足你認為豪華的東西,所有東西看上去都很好,但真正開起來,VV5的不足就開始出現,變速箱表現不盡人意,懸挂動作不夠乾脆等都是VV5的不足之處。如果你僅僅是在市區行駛,需要有一台拉風的座駕,VV5可以滿足你的要求,15萬你還能要求這麼嚴格嗎?

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

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

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

A800/580/途安L/奇駿/奧德賽/銳界,7座車大亂斗!

4T+7速雙離合真的難逢敵手,有動力,又夠快速,還平順,頓挫。不好意思,我們大眾的雙離合真的沒有,你說用幾年之後就會有。那是之後的事情。而且,大眾紮實的底盤質感在途安L上也得到體現,這也是很多人喜歡大眾車的其中一個原因。

在SUV市場繼續高歌猛進的同時,有兩股勢力正隱隱膨脹——旅行車和7座車,一個是人們為情懷買單,一個是解決了實際需求。只不過誰都還是不願意只做一個7座車(MpV或微面),都還是想抓住SUV市場,於是很多7座SUV進入了各個級別區間。今天,我們找來了6台不同級別的7座車,他們分別是10萬級的東風風光580、長安歐尚A800,20萬級的日產奇駿、大眾途安L,30萬級的福特銳界、本田奧德賽。一起來探討一下,到底誰的空間大,誰的駕乘表現好,而你,又該選誰?請看視頻/文章……

10萬級風光580vs歐尚A800

風光580 7.29-12.30萬,A800 5.99-11.99萬

風光580的銷量還是挺不錯的,我猶記得它上市發布會那100個網紅,咳咳,它的火熱,主要是因為在這個價位很難找到像它這樣質感相對較好的7座SUV車型。

設計方面我就不多聊了,個人覺得車頭和車側的部分線條神似本田繽智,外觀方面還挺Nice,但內飾老氣了一些。

有人說,這車就是一個“日系”車,因為是逆向研發出來的。我不去評判這個說法,我只想說,這車駕駛起來還真有這麼回事。動力比較疲軟,配合CVT變速箱,基本上就是落入“舒適、平順”(肉)的範疇。懸挂方面也是偏軟了一些,舒適性倒是沒有太多問題,不過確實沒有太好的駕駛感受。NVH也如此,各方面的噪音空間都是中等水平。

机械性倒是沒有什麼問題,例如不會有明顯鬆散的感覺、不會有過多的抖動或者異響,每個月這麼多人購買它,說明還是可以接受的(看在價格份上)。

這台車的行駛質感比上面說的580要好,畢竟是新車,且長安的造車水平自然更勝一籌。你會覺得這台車的机械質感更加緊緻,低速時候的噪音控制是意外的好,動力輸出會多了一股衝勁,主要是因為它是偏低扭輸出一些,且用的是手動變速箱。

當然,它也有問題,一來畢竟是較長的MpV車型,懸挂的後段支撐不算很到位,所以稍微快一點的操作它是應對不過來的。另一方面的問題出在濾振上,有種拉不住彈簧的感覺,整台車左右多餘晃動比較多。噪音也是,在速度起來之後有點控制不住。

223布局的座椅,在長車身、長軸距下換來不錯的乘坐空間,三排座位都能夠坐人,且也有一些配置照顧到第三排的乘客,倘若平時真的很經常多人出行,那麼我覺得這種MpV會是更好的選擇。

20萬級奇駿vs途安L

奇駿17.98-26.88萬,途安L15.58-19.98萬

奇駿嚴格意義來說算不上7座車,不過既然它有7座就逃不過我們的“魔爪”,5座的奇駿賣得好這點沒有人懷疑,我們還是來看看7座的表現吧。

2.5L+CVT的奇駿並不是人們印象中日系車或者日產車那種中庸中庸的調校,甚至低速時還有股蠻勁,平順和動力之間取得了不錯的平衡。底盤也如此,雖然是“沙發廠”,但不是一味的軟,濾振有高級感,懸挂有韌勁,操控方面也可圈可點。而且,也沒有一貫日系車那種單薄的感覺,噪音、震動都有一定的抑制。

相對大尺寸的奇駿在緊湊型SUV里算是大個子了,所以也有了不錯的第二排空間,不過同樣地,5座設計的它加入了2個第三排座椅,表現自然有限,還好7座車只有兩個配置,看來只是滿足一下部分特殊消費者的需求。

途安L則是一台典型的大眾車,我這麼說你真的很難反駁,通用化的零件、一樣的動力搭配,甚至差不多的前臉和中控設計,簡單想想都大概知道它的駕駛感受。不過我還是要稱讚一下大眾,這套1.4T+7速雙離合真的難逢敵手,有動力,又夠快速,還平順,頓挫?不好意思,我們大眾的雙離合真的沒有,你說用幾年之後就會有?那是之後的事情。

而且,大眾紮實的底盤質感在途安L上也得到體現,這也是很多人喜歡大眾車的其中一個原因。

途安L的第二排算是一個亮點,3個座位都是獨立的,雖然犧牲了一些寬度,但這樣卻優化了中間那位乘客的體驗,不用被隆起的座椅擱屁股。進入第三排很方便,一鍵放倒毫不拖泥帶水。第三排的座椅礙於車身尺寸,一樣是比較有限,只適合坐身材“好”的人或者小朋友。

30萬級銳界vs奧德賽

銳界22.98-42.98萬,奧德賽22.98-35.48萬

提及7座SUV,應該大部分人會想到銳界或者漢蘭達,這兩台車價格雖然不低,但也都挺火的,畢竟到了這個價位7座車就沒有什麼好選的了。

福特把運動刻在基因里,銳界的運動感自然也不在話下,2.0T用在這個尺寸和重量的車上百公里加速時間只能說還行,但實際的感受卻不一樣,它很樂意停留在高轉速,讓提速來得很狂野,只是油耗就有些難保障了。操控感也是一流的,反應很快,支撐很足。銳界的NVH是對得起其價格的,底盤有高級感,不過路感會清晰一些。

尺寸足夠大的銳界二排空間沒有毛病,但可惜了,第三排的座椅依然是“小板凳”,空間也一樣需要第二排給它騰,甚至腳掌也一樣不能放平。有些遺憾。高配的銳界第三排、第二排座椅都支持一鍵放倒,這是銳界的一個亮點。

奧德賽和GL8是目前這個價位MpV的典型,我覺得奧德賽還是會更舒適一點。

奧德賽用的是2.4L自然吸氣發動機加CVT變速箱,然而你卻不能少看它——本田發動機廠的調校可不是蓋的,動力輸出很順暢,肉感會有一點,但你會發現這個動力很懂你,能否滿足你的精準操作。只不過,它還是比不上競品們的2.0T來得猛烈。

駕控方面也讓人有些出乎意料之外,不會過分軟,不會過分輕盈,開起來還是很稱手的。略感可惜的是,噪音控制還是不太到位,這一點會讓它的商務性、甚至家用性都扣上點分。

奧德賽的大空間真的就毋庸置疑了,第二排還有頭等艙座椅,有多向調節、腳拖等,讓你坐得舒舒服服,左右兩個座椅的距離也可以調整,這點還是很巧妙的。

第三排座椅雖然也不見得是多完整,但起碼空間、坐姿沒有太大問題。可以說,如果你認為奧德賽的7座都不及格的話,真的沒有多少台車ok了。

所以到底怎麼選?

總的來說,MpV在空間和功能性上面都是優於SUV的,SUV就算是銳界這種中型SUV,7座也都是有些許勉強。不過我也可以告訴你,確實SUV的駕駛感受可能會更好一些,畢竟它需要應對更多不同的路況,對懸挂和濾振的要求會更高些,且坐姿高、視野也都更好,整體風格會更加的多種多樣,而MpV在這方面會調校得更加的“無趣”一些,大多隻能談舒適。

最後再認真的說一句,其實不同品牌在設計車型或者調校水平上面是有差別的,例如途安L的質感就很好且座椅的布局、功能都很好,而像580,彷彿就沒有考慮太多。因此,在物色7座車的你,還是要去全方位的體驗一下各種關於空間和乘坐的細節會更好一些!本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

法國逐步禁馬戲團野生動物表演 即起停止圈養新鯨豚

摘錄自2020年9月29日自由時報報導

法國環境部長蓬皮里(Barbara Pompili)表示,法國政府決議將逐步禁止國內的馬戲團再使用野生動物表演,善待動物組織也在推特回應歡迎此政策,希望能盡快執行。

綜合外媒報導,法國政府決定將逐步禁止國內的馬戲團使用包括熊、老虎、獅子、大象等野生動物來作為表演。此外,即日起法國的三座海洋館也不能繁殖或引進圈養新的海豚及虎鯨。

蓬皮里表示,目前政府正在考慮為這些被圈養的鯨豚建立庇護所,但是永久性演出和動物園中的野生動物並不受到禁令影響。法國政府也會向馬戲團與海洋館的從事相關人員提供高達800萬歐元(約新台幣2億7086萬6144元)的援助方案,讓工作人員受到最小的衝擊。

蓬皮里說,政府也預計未來五年內將禁止養殖貂,因為業者養殖目的僅是為了取下貂皮。

生物多樣性
國際新聞
法國
馬戲團
展演動物

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

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

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

德國公布90處核廢最終處置場址候選清單 預計2031年前完成選址

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準