欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

高效的把NSMutableArray變成NSArray - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 技術(shù)分享 >

高效的把NSMutableArray變成NSArray

發(fā)表時(shí)間:2020-11-5

發(fā)布人:葵宇科技

瀏覽次數(shù):29

下效的把NSMutableArray變成NSArray


我玫鄰辦法中部大概會(huì)用NSMutableArray,但是前來(lái)的時(shí)辰欲看別的進(jìn)出有來(lái)改我們的Array
   NSMutableArray *array1 = [@[] mutableCopy];
    for (int i = 0; i < 10000000; i++)
    {
        [array1 addObject:@(i)];
    }

    return array1;

那噶勘辰我們平強(qiáng)的做房嗲拷貝array1大概是逝世成一個(gè)新的array1
return [array1 copy];
return [NSArray arrayWithArray:array1];

那里呢,我們挨印了下光陽(yáng)
    NSMutableArray *array1 = [@[] mutableCopy];
    NSMutableArray *array2 = [@[] mutableCopy];

    PERF_ENTER_(init)
    for (int i = 0; i < 10000000; i++)
    {
        [array1 addObject:@(i)];
        [array2 addObject:@(i)];
    }
    PERF_LEAVE_(init)

    PERF_ENTER_(copy)
    NSArray *array3 = [array1 copy];
    PERF_LEAVE_(copy)
    NSLog(@"%@", [array3 class]);

    PERF_ENTER_(arrayWithArray)
    NSArray *array4 = [NSArray arrayWithArray:array1];
    PERF_LEAVE_(arrayWithArray)
    NSLog(@"%@", [array4 class]);

/*    
2015-01-07 00:57:36.869 JoinShow[1134:68543] +[XYPerformance recordName:andTime:] 'init' = 5.492105(s)
2015-01-07 00:57:37.125 JoinShow[1134:68543] +[XYPerformance recordName:andTime:] 'copy' = 0.255650(s)
2015-01-07 00:57:37.125 JoinShow[1134:68543] __NSArrayI
2015-01-07 00:57:37.373 JoinShow[1134:68543] +[XYPerformance recordName:andTime:] 'arrayWithArray' = 0.247696(s)
2015-01-07 00:57:37.373 JoinShow[1134:68543] __NSArrayI
*/

收明畸形卑せ個(gè)哪當(dāng)ツ倒array必要0.2s,罩窩經(jīng)是出有磕驏有及忍的光陽(yáng)了.必要對(duì)辦法盡行劣化.
紊的實(shí)量是甚么,勢(shì)兌們必要前來(lái)一個(gè)弗成變的array,是以我們可能曲接把 NSMutableArray 東西的isa 建改成 NSArray.
- (NSArray *)immutable
{
    object_setClass(self, [NSArray class]);
    return self;
}

    PERF_ENTER_(immutable)
    NSArray *array5 = [array2 immutable];
    PERF_LEAVE_(immutable)
    NSLog(@"%@", [array5 class]);
/*
2015-01-07 00:57:37.373 JoinShow[1134:68543] +[XYPerformance recordName:andTime:] 'immutable' = 0.000030(s)
2015-01-07 00:57:37.373 JoinShow[1134:68543] NSArray
*/

看下光陽(yáng),出有雅然快很多.
-----------------
閉于那多么做,咱只能道念法想法是好的.實(shí)際...

相關(guān)案例查看更多