1. 程式人生 > >一道阿里筆試題解析--程式調優

一道阿里筆試題解析--程式調優

下列方法中,____不可以用來程式調優?

        A.改善資料訪問方式以提升快取命中率

        B.使用多執行緒的方式提高 I/O 密集型操作的效率

        C.利用資料庫連線池替代直接的資料庫訪問

        D.利用迭代替代遞迴

        E.合併多個遠端呼叫批量傳送

        F.共享冗餘資料提高訪問效率

        答案:B

    解析:
    A.快取命中率高的話自然程式效能就高啦
    B.I/O密集型指的是所有的執行緒都在等待一個I/O的操作,當他輸入輸出端所有的資料來了之後,我們非常快的就能處理完,而大部分時間都會在等待中,所以既然已經在等待中的話再去增加 執行緒的量也沒法提高效率的,因為就是處於等待中的嘛。
    C.連線池是指已經連線到了資料庫多個連線放在那裡,要用的話直接從連線池拿一個連線用就行啦,不用了再還回去,這樣就避免了與資料庫建立連線然後再斷開,因為與資料庫建立連線是很慢的,所以OK。
    D.遞迴會使用棧,他的消耗是很大的,
    E.一個非常常用的程式調優的方式,遠端呼叫,資料傳送然後等待資料響應回來,這一個來回的時間是很慢的,如果有多個遠端呼叫的話,就得等多次,所以不如將多個遠端呼叫一起發,然後一起等待結果,這和TCP的滑動視窗有點類似,
    F.冗餘資料怎麼來共享呢,在面向物件裡有一個不可變物件,這個不可變物件就是一個非常好的可以共享的資料,當我們把所有的資料都做成不可變物件來快取起來的話就能提高訪問效率。