美文网首页
SwiftUI 中的List 在MacOS 中的性能优化。

SwiftUI 中的List 在MacOS 中的性能优化。

作者: liaoworkinn | 来源:发表于2022-09-02 15:52 被阅读0次

List在iOS中有懒加载的特性,但是在MacOS中会一次性加载完List中的所有的数据。并没有懒加载的特性。

所以在MacOS的List中当数据量巨大时,会存在巨大的性能瓶颈。

  var body: some View {
    List(){
        ForEach(currentSectionModel) { (sectionModel) in
            Section(header:
                        HStack {
                Text("section")+Text(sectionModel.word).font(.title).foregroundColor(.red)
                        }.frame(height:35)
            ) {
              ForEach(currentSectionModel, id: \.self) { (wordModel) in
                  Text(wordModel.word)
                }
            }
        }
    }

当数据量达到15000条时, 在16寸i9的mbp上加载时长需要4.53s

这个时候建议使用 ScrollView + LazyVStack(macOS 11, iOS14支持)

ScrollView {
    LazyVStack {
    
    }
}

来获取巨大性能提升

  var body: some View {
    ScrollView {
        LazyVStack {
            ForEach(currentSectionModel) { (sectionModel) in
                Section(header:
                            HStack {
                    Text("section")+Text(sectionModel.word).font(.title).foregroundColor(.red)
                            }.frame(height:35)
                ) {
                  ForEach(currentSectionModel, id: \.self) { (wordModel) in
                      Text(wordModel.word)
                    }
                }
            }
        }
    }.onAppear {
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            currentSectionModel = storeData
        }
    }
}

实测加载15000 条数据加载时长为31ms 加载时长为原来的 0.0068倍。
因为只加载了显示的部分,所以性能提升巨大。

相关文章

  • SwiftUI 中的List 在MacOS 中的性能优化。

    List在iOS中有懒加载的特性,但是在MacOS中会一次性加载完List中的所有的数据。并没有懒加载的特性。 所...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 消息传递

    此篇文章为读iOS 和macOS性能优化的简单记录。 目前的Objective-C 运行时系统中,Objectiv...

  • SwiftUI 高级List分页与无限滚动之高级版(2020教程

    在《SwiftUI 高级List分页与无限滚动之基础版(2020教程)》中我们介绍了List分页的基础实现方法,但...

  • 前端性能优化

    对于前端的性能优化,主要有分为加载优化和性能优化。在Google官方文档中,给出了性能优化有哪些好处。前端优化的最...

  • 前端性能优化(上)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 为什么要进行前端性能...

  • [笔记]Android性能优化 中

    [笔记]Android性能优化 上[笔记]Android性能优化 中[笔记]Android性能优化 下 7.And...

  • [笔记]Android性能优化 下

    [笔记]Android性能优化 上[笔记]Android性能优化 中[笔记]Android性能优化 下 8.And...

  • [笔记]Android性能优化 上

    [笔记]Android性能优化 上[笔记]Android性能优化 中[笔记]Android性能优化 下 说明 这篇...

网友评论

      本文标题:SwiftUI 中的List 在MacOS 中的性能优化。

      本文链接:https://www.haomeiwen.com/subject/zptynrtx.html