首页 文章 精选 留言 我的

精选列表

搜索[博客搭建],共10011篇文章
优秀的个人博客,低调大师

2024 年 Kotlin Multiplatform 发展路线图 | 官方博客

记得加关注, Kotlin 之路不迷路! Kotlinlang.org 随着 Kotlin Multiplatform 最近稳定,世界各地的开发团队已经可以在生产中无缝、舒适地采用它。不过,这对于 KMP 及其生态系统来说仅仅是一个开始。为了让您获得优良的跨平台开发体验,JetBrains 计划在 2024年对核心 Kotlin Multiplatform 技术、Compose Multiplatform、KMP 工具和 KMP 库做出一系列深入改进。本文将介绍我们在这些领域的计划和优先事项。 Compose Multiplatform 我们致力于将 Compose Multiplatform打造成框架,供开发者创建在所有支持的平台上都一致、美观且高性能的应用程序。目前,我们的主要关注点是让 Compose for iOS 进入 Beta 版阶段,但同时也在推进其他事项。我们的计划: 使所有 Jetpack Compose 核心 API 和组件实现多平台。 提高 iOS 端的渲染性能。 使 Compose for iOS 应用中的滚动和文本编辑行为与 iOS 原生应用中的行为相同。 为共享所有类型的资源实现通用 API。 与 iOS 和桌面无障碍功能 API 集成。 提供多平台导航解决方案。 许多上述改进也有利于 Compose for Desktop。此外,我们也在提高其稳定性,并根据生产使用反馈进行改进。 我们还将继续探索 Compose for Web 的可能,特别是 Wasm。我们最近的目标是将其提升至 Alpha 版,其中包括: 允许您移植现有应用并重用所有通用代码。 支持不同的屏幕尺寸、方向和密度。 支持鼠标、触摸屏、实体键盘或屏幕键盘输入。 提高性能和二进制文件大小。 工具 我们致力于为 Kotlin Multiplatform 提供优异的 IDE 体验。这意味着不仅投资核心平台,例如,将 Kotlin IDE 插件迁移到 K2 编译器前端,还要为所有 Kotlin Multiplatform 目标和集成的代码库提供单一工具 (Fleet),从而消除在不同 IDE 之间不断切换的需求。 我们计划在您对使用 Fleet 进行 Kotlin Multiplatform 开发的反馈上快速迭代,确保满足您的需求,让您获得出色的开发体验。特别是,我们将在以下方面着重开展工作: 增强 Compose Multiplatform 支持,包括通用代码的实时预览和可视化调试工具。 帮助您进行项目配置的 IDE。 统一并增强 Multiplatform 项目所有部分的调试体验。 Multiplatform 核心 Kotlin Multiplatform 的一个流行场景是与 iOS 目标共享代码。我们希望关注在代码库中使用 Kotlin Multiplatform 框架的 iOS 开发者的开发体验。 这一领域的主要举措是直接从 Kotlin 导出到 Swift。这将消除 Objective-C 瓶颈,带来更广泛的 Swift 语言支持和更自然的 API 导出。此外,我们还在为 Kotlin 库作者创建专属工具。这些工具将提高 Kotlin API 导出到 Swift 时的兼容性和用户友好性。我们也在密切关注工具。IDE 和构建系统是开发者体验的重要组成部分,我们的目标是确保 Swift Export 顺利集成。 我们的其他举措包括加快 Kotlin/Native 编译速度、增强 CocoaPods 集成,以及引入对使用 SwiftPM 导出框架的支持。 我们还计划继续探索改进 Kotlin Multiplatform 应用程序构建设置的方式。在 Kotlin 1.9.20 中,我们对 Gradle Multiplatform DSL 发布了巨大改进,使其更易读写。我们将继续逐步完善。此外,我们正在测试 Amper,这是一个新的项目配置工具,专注于实用性、入门和 IDE 支持。 库生态系统 随着 Kotlin Multiplatform 生态系统的快速发展,库的向后兼容性变得至关重要。为此,JetBrains 团队和库创建者必须合作。我们的计划是: 改进 klib 格式,使库创建者可以利用其构建 JVM 库的知识。 在 Kotlin Multiplatform 库中实现与 JVM 相同的代码内联行为。 提供工具来确保您的多平台库公共 API 不会以不兼容的方式更改。 我们还将改进 KMP 库的发布流程。具体而言,我们计划: 无需 Mac 机器即可构建和发布 KMP 库。 为创建和发布 KMP 库提供模板和广泛的指导原则。 虽然 Kotlin Multiplatform 现已稳定,但我们仍在计划重大更新。请放心:以当前格式构建的库仍然可以与较新的 Kotlin 版本一起使用。 阅读更多内容 Kotlin Multiplatform 已经稳定并且可以投入生产环境 Compose Multiplatform 1.5.10 – 最佳入门时机 Amper – 提升构建工具用户体验 欢迎使用带有 Kotlin Multiplatform Tooling 的 Fleet Kotlin 路线图: https://kotlinlang.org/docs/roadmap.html 专注 Kotlin 领域的 2023 年度总结 凝聚 Kotlin 开发者的线上技术派对 一年一度 Kotlin 中文开发者大会 将在 12 月 16 至 17 日和大家线上见面。 10+ 位实力大咖将围绕 Kotlin Multiplatform、Android、 Kotlin 编译器插件、后端开发等 热门话题贡献精彩的技术演讲。 新增 Live Coding 环节, 带你上手 Compose Multiplatform。 还有来自 Kotlin 团队和社区小伙伴的 学习资源与经验分享。 陪你过一个专属 Kotlin 的充实周末! 点此查看大会议程安排 ✅ 也别忘了一键预约视频号开播提醒 ⏬ 您也可以访问我们的大会专属页面, 填写活动报名表单, 在大会开始前收到邮件提醒。 转至大会专属页面注册报名 本博文英文原作者: Egor Tolstoy 这就是 Kotlin 编程语言 简洁、跨平台、且有趣! 本文分享自微信公众号 - JetBrains(JetBrainsChina)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

精选博客系列|VMware如何实现多云基础设施

私有云,公有云,多云,边缘云...如今,组织的团队、数据和工作负载分布在各种环境中。毫无疑问,这导致了技术上的复杂性增加、安全风险加剧、成本飙升和云战略不连贯的问题。 “39%的高管难以在(他们的)公有云上实现一套共同的控制。” 使用VMware跨云服务,您可以从一个集中的控制中心运行、迁移、现代化、管理和保护应用程序,覆盖您所有的云环境。通过提供一体化云基础架构解决方案,管理者可以满足开发和运营的优先事项,同时管理开支。 “91%的高管正在寻求改善其公共云环境的一致性。” 跨云服务使各种战略性IT计划成为可能,例如: 1.使用VMware Cloud™可以在任何地方运行应用程序和工作负载 - 迁移和运行企业应用程序 - 在公共、本地和边缘环境中实现一致的运营 2.使用云管理进行监控和管理 - 单一管理控制台 - 跨云计算成本的可见性 - 基于利用率的资源优化和云订阅 3.使用VMware Tanzu™构建和运营云原生应用程序 - 使用Kubernetes构建和管理现代应用程序 - 一个开发环境,一个部署流程 - 适用于私有和公有云环境 4.安全的网络和环境 - 跨云连接和保护环境 - 检测风险并实现纠正 - 评估符合自定义或行业合规标准 视频链接:https://www.youtube.com/watch?v=T2vBNKwU0N0 本文作者:Dave Wolpert,VMware跨云服务的解决方案营销高级经理。 内容来源|公众号:VMware 中国研发中心 有任何疑问,欢迎扫描下方公众号联系我们哦~

优秀的个人博客,低调大师

【博客大赛】JVM深入探索之初探ZGC的领域

背景概要 虽然每一门编程语言都会有属于自己的生命周期,有巅峰期同样也有衰退期,Java语言为了保证的巅峰状态一直在线,不断的升华和创新自己特性和能力,经历了从1995年到2020年这么多年的成长,Java技术体系亦愈渐强大,无论是Java虚拟机不断的升级优化还是Java语法糖的不断完善,每一次发布都是一个非同一般的里程碑节点,要说Java体系中最重要的“大脑”,那非JVM虚拟机莫属了,而JVM中最重要的核心部分就是GC管理子系统。目前,最新颖且最优秀的GC回收器就是ZGC,对于ZGC来讲它的算法结构和设计思想非常值得大家学习和借鉴,无论你对JVM了解程度如何,相信本篇文章都会帮助对ZGC的特性和原理有一个非常深刻且扎实的认识。 基础概念 ZGC的官方定义是:"A Scalable Low Latency Garbage Collector"。翻译成中文含义就是一个可扩展的低延迟垃圾收集器。 是Oracle 内部研发的一款新的垃圾回收器,最大的宣传点是低延迟(Low Latency)。根据近期的消息,该项目将会托管给 OpenJDK,由后者开发完善。体现出:可扩展、低延迟 实现目标 ZGC特性 备注 能够支持TB级别的堆内存回收能力 10ms的最大回收停顿时间 未来回收的系统运作机制奠定了基础 与G1相比较,吞吐率下降的不多于15% 暂定时间不会随着堆活跃的对象区域的大小提升而变长 性能对比 在SPECjbb这个基准测试中,被测产品要运行JVM中包含了并行机制GC回收器(Parallel Scavenge/Parallel Old),ZGC回收器、G1回收器三者的比较。 比较的环境的CPU模型名称:Oracle Linux 7.4 - Intel Xeon ES-2690 -2.9GHz 例如:Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz或者QEMU Virtual CPU version (cpu64-rhel6)应该能大概看得出是虚拟CPU仍是真实的CPU。 CPU模型名称 堆内存 操作系统(OS) 物理CPU信息 主频 物理内核 逻辑内核 Composite 128G Oracle Linux 7.4 Intel Xeon ES-2690 2.9GHz 16 32 SPECjbb®2015 – Score 比较的维度: max-JOPS(Throughput):吞吐率 ZGC Parallel G1 98% 100% 95% critical-JOPS(Throughput): 延迟角度的吞吐率 ZGC Parallel G1 76% 51% 49% 结论 总体分布数据为越高越好。 max-JOPS吞吐率:Parallel=100%,ZGC=98%,G1=95% critical-JOPS延迟角度吞吐率:ZGC=76%,Parallel=51%,G1=49% 总体来讲ZGC的综合性能最好,仅次于Parallel,最后是G1 SPECjbb®2015 – Pause Times 比较的维度: ZGC Linear Scale:线性指标 Average 95% 99% 99.9% Max 1.091ms (+/-0.215ms) 1.380ms 1.512ms 1.663ms 1.681ms Logarithmic scale :逻辑指标 Average 95% 99% 99.9% Max 0.18MS 0.5MS 0.75MS 5ms 6.1Ms 而对于其他GC回收器来讲,可以看出延迟时间大大增加,此处就不进行数据列举,参考上图可以分析全部远远>10ms之上。 结论 越低越好 各种SPEC®基准测试和内部工作负载进行了特别的性能测量。一般情况下,ZGC能够维护个位数的毫秒暂停时间。 功能特性 读屏障(Load barriers ) 染色指针(Colored pointers) 单代(不再区分新生代和老年代)(Single generation) 局部压缩(Partial compaction) 基于区域(Region-based) 即时内存重用(Immediate memory reuse) NUMA机制(NUMA-aware) 并发机制(Concurrent) 总结成为一句话就是: ZGC是一个并发的、单代(不再区分新生代和老年代)的、基于region的、支持numa的压缩收集器。Stop-the-world阶段仅限于根扫描,所以GC暂停时间不会随着堆或存活对象的多少而增加。 回收阶段 ZGC的一个核心设计原则是结合使用内存屏障和染色对象指针。 ZGC的垃圾回收算法和传统的Stop-The-World式的垃圾回收算法不太一样,后者的标记阶段和内存压缩阶段会使得应用线程挂起。ZGC 和C4(Continuously Concurrent Compacting Collector))算法比较类似。 垃圾回收过程主要分为以下三个阶段: 上图整体是GC的回收过程的周期阶段展示,主要包括了并行化处理阶段: 标记(Marking); 重定位(Relocation)/压缩(Compaction); 重新分配集的选择(Relocation set selection); 引用处理(Reference processing); 弱引用的清理(WeakRefs Cleaning); 字符串常量池(String Table)和符号表(Symbol Table)的清理; 类卸载(Class unloading)。 ZGC能够在运行Java应用程序线程时执行并发操作,比如对象重定位。从Java线程的角度来看,在Java对象中加载引用字段的行为受到内存屏障的限制。 一次完整的 ZGC 回收周期分为以下几个阶段(Phase): Pause Mark Start:标记根对象; Concurrent Mark:并发标记阶段; Concurrent Relocate:并发重定位; 活动对象被移动到了一个新的Heap RegionB-region 中,之前旧对象所在的Heap RegionA-region 即可复用;如果 B-region 中对象之间的引用关系将会在这一阶段被更新; 在重定位过程中,新旧对象的映射关系(同一对象在不同Region中的映射关系)被记录在了Forwarding Tables中。 Pause Mark Start:这个阶段实际上已经进入了新的ZGC Cycle,同样也是标记根对象; Concurrent Relocate…… 从上面的垃圾回收过程可以看到,正是因为ZGC回收过程中各个 Phase 的并发性,才使得GC Pause不受垃圾回收周期内堆上活动数据数量和需要跟踪与更新的引用数量的影响,将暂停时间保持在较低的水平。 Pause Mark Start ZGC 的垃圾回收各阶段也不都是并发执行的,在Pause Mark Start阶段进行根对象扫描(Root Scanning)时会出现短暂STW的暂停。 ZGC 在Pause Mark Start阶段进行根对象扫描(Root Scanning)建立起到达性分析的对象之间的引用关系图谱。 Concurrent Remap:并发重映射这个阶段除了标记根对象直接引用的对象外,还会根据上个ZGC Cycle中生成的Forwarding Tables更新跨Heap Region的引用; Concurrent Mark:并发标记阶段,此阶段不会进行stw机制,会处于并发标记与根节点有关系并且可到达的对象。 同步检查点(Sync point):清理弱引用的数据信息 活动对象被移动到了一个新的Heap RegionB-region 中,之前旧对象所在的Heap RegionA-region 即可复用;如果 B-region 中对象之间的引用关系将会在这一阶段被更新; 在重定位过程中,新旧对象的映射关系(同一对象在不同Region中的映射关系)被记录在了Forwarding Tables中。 这允许我们在移动对象/整理内存阶段,在指向可回收/重用区域的指针确定之前回收/重用这部分内存,这有助于降低堆开销。这还意味着不需要实现单独的标记压缩算法来处理完整的GC。 这允许我们使用相对较少且简单的GC屏障。这有助于降低运行时开销。这还意味着在解释器和JIT编译器中更容易实现、优化和维护GC barrier代码。 局限性 ZGC的初始实验版本将不支持类卸载。默认情况下,classunload和ClassUnloadingWithConcurrentMark选项将被禁用。即便你启用也是不生效的。此外,ZGC最初不支持JVMCI(即Graal)。如果启用EnableJVMCI选项,将打印一条错误消息。 构建和使用 按照惯例,构建系统默认禁用JVM中的实验性特性。ZGC是一个实验性特性,因此不会出现在JDK构建中,除非在编译时使用configure选项: --with-jvm-features=zgc //显式地启用它。 (ZGC将出现在Oracle发布的所有Linux/x64 JDK版本中) JVM中的实验特性还需要在运行时显式地解锁。因此,要启用/使用ZGC,需要以下JVM选项: -XX:+ unlockexperimental alvmoptions -XX:+UseZGC 其他实现低延迟的方案 一种显而易见的方法是让G1的内存整理阶段可以并发执行。这种方案在很早的阶段就被放弃掉了。原因是现有的G1代码并不是为这种设计而编写的,因此要想在保证稳定的前提下实现这种特性非常困难。 一种方案是对现有的CMS收集器进行改进。然而这并不是一种好的选择,原因有很多,比如CMS不支持内存整理、代码复杂性和CMS实际上已经停止开发等。 Shenandoah Project正在探索通过使用Brooks Pointers来实现并发。 ZGC 总结 ZGC 在内存整理和引用更新上采取了不同的策略,给垃圾回收过程带来了巨大的性能提升。内存整理和引用更新都是并发的,也是交替进行的(其他的垃圾回收算法在更新引用时需要所有的线程到达safe-point)。但与此同时,我们也应该看到,并发带来的 GC 吞吐率的下降也是不可忽视的。 当响应时间比吞吐量占有更高的优先级时,ZGC 是个不错的选择。而对那些不能接受长时间暂停的应用程序来说,ZGC 是个理想的选择。而对于那些只是在后台进行密集计算的应用程序,G1 或者 Parallel 垃圾回收器可能具有更好的垃圾回收性能。 未完待续......

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册