当前位置: 首页 > news >正文

React Native 与 Flutter:你的应用该如何选择?

Flutter 和 React Native 都被认为是混合应用程序开发中的热门技术。然而,当谈到为你的项目使用框架时,你必须考虑哪一个是最好的:Flutter 还是 React Native?

本篇文章包含 Flutter 和 React Native 在各个方面的差异。因此,请提前阅读并做出有利于您和您应用程序的最终用户的决定。

React Native 与 Flutter全面比较

在比较 Flutter 和 React Native 时,评估性能、社区支持、学习曲线、架构和开发难易程度等因素至关重要。通过考虑这些方面,您可以做出明智的决定,以满足项目需求并为应用程序用户提供最佳体验。

Flutter 是什么?

Flutter 是 Google 开发的一款开源框架,用于通过单一代码库构建美观、原生编译的多平台应用程序。其首个稳定版本于 2018 年 12 月发布。

Flutter 为开发者提供了独特的优势,允许他们编写一次代码并将其部署到多个平台上。这意味着开发者无需为 iOS 和 Android 开发单独的应用程序,而是可以使用 Flutter 创建可在两个平台上无缝运行的单一代码库。

该框架的多功能性和效率促成了大量成功应用程序的创建。

以下是使用 Flutter 创建的一些热门应用程序:

  • Google Pay:Flutter 的灵活性推动了 Google Pay 的开发,Google Pay 是一款广泛使用的移动支付应用,提供安全的交易和便捷的支付方式。

  • Dream11:Flutter 被用于构建 Dream11,这是一个非常受欢迎的梦幻体育平台,允许用户创建和管理各种运动的虚拟团队。

  • Nubank:领先的数字银行平台 Nubank 借助 Flutter 开发了一款用户友好的移动应用程序,提供无缝金融服务,包括银行业务、信用卡和投资。

  • eBay:这家知名电子商务巨头利用 Flutter 创建了一款现代化且直观的应用程序,让用户能够轻松地购买和销售产品。

  • BMW:Flutter 在BMW应用程序的打造中发挥了关键作用,提供了复杂的用户界面和先进的功能,以增强车辆管理和控制。

  • 丰田:丰田利用 Flutter 设计了一款创新应用程序,为用户提供个性化的体验,提供有关其车辆的全面信息和无缝连接。

以下是 使用 Flutter 创建的应用程序案例。

什么是 React Native?

React Native 是一个功能强大的开源 UI 软件框架,由 Meta Platforms, Inc. 开发。它使开发人员能够使用单个代码库为多个平台创建应用程序,利用流行的 React 框架并利用每个平台的本机功能。React Native 于 2015 年 3 月发布了第一个稳定版本,在移动应用开发社区中广受欢迎并被广泛采用。

从本质上讲,React Native 允许开发人员使用 JavaScript 和 React(用于构建用户界面的声明性 JavaScript 库)构建移动应用程序。这种独特的组合使开发人员能够编写可在不同平台之间共享的可重复使用的 UI 组件,从而节省大量开发时间和精力。

以下是使用 React Native 创建的一些流行应用程序:

  • Facebook:Facebook 利用 React Native 的功能开发其移动应用程序。这使得该应用程序运行非常流畅且用户友好,并且也可以在手机上使用。

  • Discord:流行的通信平台 Discord 利用 React Native 创建其移动应用程序,为全球数百万用户提供实时语音、视频和文本通信。

  • Skype:React Native 在创建 Skype 的移动应用程序时非常重要。它使用户能够轻松进行清晰、高质量的语音和视频通话、发送消息以及与他人轻松协作。

  • 沃尔玛购物:沃尔玛利用 React Native 开发了一款用户友好的购物应用程序,提供广泛的产品、便捷的浏览和安全的在线交易。

  • Pinterest:Pinterest 利用 React Native 的强大功能来制作其视觉上引人入胜的应用程序,使用户能够发现和保存各个类别的创意。

  • 特斯拉:React Native 在特斯拉移动应用的开发中发挥了重要作用。它允许用户远程控制电动汽车,例如检查剩余电量、查看是否正在充电以及调节车内温度。它让特斯拉车主能够非常方便地使用手机管理车辆。

这里展示了 使用 React Native 创建的应用程序。

Flutter 和 React Native 的优缺点

Flutter 的优点:

  • 完善的空安全: Flutter 提供了完善的空安全优势,有助于消除空引用异常并增强代码的稳定性和可靠性。

  • 轻松实现多平台支持: Flutter 允许开发人员使用单一代码库为多个平台(包括 iOS、Android、Web 和桌面)构建应用程序。这简化了开发工作,并减少了针对特定平台实施所需的时间和资源。

  • 高效的代码和美观的 UI: Flutter 让开发者能够编写更少的代码,同时提供具有视觉吸引力的用户界面。借助 Flutter 丰富的预设计小部件,开发者可以跨不同平台创建美观且一致的 UI 元素。

  • 快速开发: Flutter 的热重加载功能让开发人员可以在开发过程中看到应用程序 UI 的即时更新,大大加快了迭代和调试周期。

  • 标准而全面的文档: Flutter 提供了详尽且组织良好的资源,包括指南、示例和 API 参考,使开发人员更容易学习和浏览框架。

  • 一致的外观和感觉: Flutter 确保应用程序在各个平台上具有一致的外观和感觉,无论用户使用什么设备,都能为用户提供类似原生的体验。

  • 兼容老旧设备: Flutter高效的渲染引擎和优化的性能使其能够兼容老旧设备,确保在更广泛的设备上获得流畅的用户体验。

Flutter 的缺点:

  • Dart 语言的流行度:虽然 Dart 正在获得关注,但它并不像 JavaScript 那样流行,与 React Native 相比,这可能会限制资源、库和开发者社区的可用性。

  • 非原生方法: Flutter 的 UI 组件不是原生的,这意味着它们在某些情况下的行为可能与原生组件不同。这可能会导致用户体验出现轻微不一致,或难以处理特定于平台的功能。

  • 应用程序大小更大:由于包含 Flutter 引擎和框架,Flutter 应用程序的文件大小往往比原生应用程序略大。不过,Flutter 的大小优化随着时间的推移不断改进,减少了对最终应用程序大小的影响。

  • GitHub 上的未解决问题:与任何框架一样,Flutter 在 GitHub 上也存在一些未解决问题。虽然 Flutter 团队正在积极解决这些问题,但开发者可能会遇到尚未解决的特定错误或限制。

  • 有限的代码推送支持: Flutter 没有内置对无线代码更新或“代码推送”的支持,需要与第三方解决方案额外集成才能实现无缝应用更新。

React Native 的优点:

  • 庞大的社区: React Native 拥有一个充满活力且广泛的开发者社区,这带来了丰富的资源、库和社区驱动的支持。这个社区驱动的生态系统使寻找解决方案、获得帮助和共享知识变得更加容易。

  • 丰富的 JavaScript 库和框架: React Native 利用广受欢迎的语言 JavaScript,允许开发人员利用大量 JavaScript 库和框架来增强应用程序功能并简化开发。

  • 类似原生的 UI 体验: React Native 的桥接技术使其能够渲染原生组件,提供近乎原生的用户界面体验,并允许开发人员利用特定于平台的 UI 功能。

React Native 的缺点:

  • 更少的开箱即用组件: React Native 提供了一组开箱即用的基本 UI 组件,可能需要额外的定制或集成第三方库才能实现核心组件之外的所需功能。

  • 缺乏类型安全性: React Native 依赖于 JavaScript,缺乏 Dart 等语言提供的固有类型安全性。这可能会导致潜在的运行时错误并增加调试工作量。

  • 性能考虑:虽然 React Native 整体上提供了良好的性能,但由于 JavaScript 和原生模块之间的桥接通信,某些复杂或图形密集型应用程序的性能可能会比 Flutter 略低。

  • 新设备上的脆弱 UI:由于硬件的快速发展,React Native 的 UI 可能在新发布的设备上存在兼容性问题。这可能需要额外的努力来确保正确的 UI 渲染和兼容性。

UI 组件

在 Flutter 中,用户界面的基本构建块是widget。这些 widget 不仅负责定义应用程序的视觉外观,还负责处理用户输入和交互。Flutter 中的每个 UI 组件本质上都是一个 widget,它使用强大的 Skia 图形引擎(以 C/C++ 编写)在屏幕上渲染。这使得 Flutter 能够在不同平台上实现高性能渲染和流畅的动画。

在 React Native 中,每个 UI 组件都使用 JSX 定义,JSX 是 JavaScript 的语法扩展,允许开发人员编写声明性 UI 代码。然后使用本机调试桥将此 JSX 代码转换为特定于目标平台的本机组件,例如 Android 的 View 或 iOS 的 UIView。虽然这允许 React Native 利用每个平台的本机组件和功能,但值得注意的是,由于渲染功能的差异,这些组件的视觉外观在旧设备和新设备上可能会略有不同。

Flutter 和 React Native 都提供了创建丰富动态用户界面的强大方法,但它们采用不同的底层机制。Flutter 对小部件和 Skia 引擎的使用提供了跨平台一致且高性能的 UI 体验。React Native 将 JSX 转换为原生组件的方法允许与底层平台的 UI 框架无缝集成。

了解这些差异可以帮助开发人员在根据应用开发需求选择 Flutter 和 React Native 时做出明智的决定。

架构

框架的架构决定了它如何构建和组织代码以有效地构建应用程序。让我们深入研究 Flutter 和 React Native 的架构。

Flutter 的架构

Flutter 遵循一种响应式和基于组件的架构,称为 Flutter 小部件树。它利用了小部件的概念,小部件是用户界面的构建块。

Flutter 的架构提倡一种声明式方法,其中 UI 以树状结构描述,小部件状态的变化会触发自动更新。此架构允许热重载,这意味着开发人员可以在开发过程中看到应用程序 UI 中的即时变化。

Flutter框架的标准架构

React Native 的架构

React Native 也采用了响应式和基于组件的架构。它利用 JavaScript 和 JSX(JavaScript XML)来创建可重用的 UI 组件。React Native 的架构涉及 JavaScript 和原生 UI 组件之间的通信桥梁。该桥梁可以将 React 组件转换为原生 UI 元素,从而允许在状态发生变化时高效地更新和渲染组件。

React Native框架的标准架构

Flutter 和 React Native 都采用了响应式和基于组件的架构,为开发人员提供了构建移动应用程序的结构化和高效的方法。

Flutter 使用 Flutter 小部件树作为其架构模式,而 React Native 则依靠桥接机制和 JSX 来创建与平台无关的 UI 组件。

了解每个框架的架构对于开发人员利用其独特功能和创建高质量、跨平台应用程序至关重要。

应用程序性能

在性能方面,Flutter 和 React Native 具有不同的特点。Flutter 应用程序以快速加载时间而闻名。这是因为 Flutter 引擎直接渲染 UI 组件,而无需任何额外的转换或获取过程。因此,Flutter 应用程序可以提供异常流畅且响应迅速的用户体验,启动时间最短,屏幕之间转换快速。

React Native 应用程序虽然仍然表现良好,但与 Flutter 相比可能会表现出略慢的性能。这主要是由于 React Native 架构的性质。尽管 React Native 近年来在优化其性能方面取得了显着的改进,但在速度和加载时间方面它仍可能落后于 Flutter。

值得注意的是,性能只是在 Flutter 和 React Native 之间进行选择时要考虑的一个方面。开发效率、生态系统和特定项目要求等因素在决策过程中也起着重要作用。

多平台支持

在多平台支持方面,Flutter 和 React Native 为 Web 和桌面应用程序提供了不同的功能。

Web 支持

Flutter 为在 Web 上运行的应用提供内置且稳定的支持。它利用可移植图形引擎 CanvasKit 来渲染 Web 应用程序的 UI。这种原生支持可确保无缝集成,并允许开发人员直接在 Flutter 框架内创建高质量的 Web 体验。

React Native 需要使用第三方软件包才能启用 Web 支持。虽然可以在 Web 上执行 React Native 应用,但需要额外的设置和配置。React Native 使用纯 HTML 组件来渲染 Web UI,这提供了灵活性,但需要额外的依赖项来进行 Web 开发。

桌面程序支持

Flutter 的桌面支持允许开发人员使用与移动和 Web 相同的代码库创建原生桌面应用程序。

React Native 缺乏内置的桌面支持,并且依赖第三方软件包来实现桌面应用程序的开发。这意味着需要额外的设置和配置才能在桌面平台上执行 React Native 应用程序。

总而言之,Flutter 为 Web 和桌面平台提供了强大且内置的支持,使开发人员能够无缝地创建多平台应用程序。另一方面,React Native 需要额外的依赖项和第三方软件包才能为 Web 和桌面实现类似的功能。

原生外观

Flutter 和 React Native 采用不同的方式处理 UI 组件的原生外观。

Flutter 拥有自己的渲染引擎 Skia,可在各种设备上提供一致且类似原生的外观。它通过使用 Skia 直接渲染 UI 组件,消除了对原生翻译的需求。

React Native 采用了不同的方法。它依靠调试桥将 JavaScript 代码转换为原生代码,然后使用原生组件显示 UI。这意味着 React Native 中的最终 UI 外观受到相应平台的原生组件的影响。因此,开发人员可能会注意到平台之间的细微视觉差异,尤其是在可能没有最新原生组件更新的旧设备上。

Flutter 和 React Native 都提供了实现类似原生外观的方法,但它们的底层机制不同。

语法

语法是定义编程语言的一组规则和结构,在 Flutter 和 React Native 框架中都起着至关重要的作用。

Flutter 的语法

Flutter 使用 Dart,这是一种现代且对开发人员友好的语言。Dart 的语法与 JavaScript 和 Java 等流行语言类似,开发人员可以轻松学习。其简洁易读的风格鼓励编写干净的代码并减少样板代码。Dart 的强类型系统有助于在开发过程中组织代码和检测错误,从而确保代码的可靠性。

React Native 的语法

React Native 使用 JavaScript,这是一种广泛采用且用途广泛的语言。JavaScript 的简单性和灵活性使其成为许多开发人员的首选。React Native 结合了 JSX (JavaScript XML),结合了 JavaScript 和类似 HTML 的语法来定义用户界面组件。这种方法提供了一种熟悉且直观的方法来构建 UI 元素,从而提高了开发人员的工作效率。

Flutter 中 Dart 干净简洁的语法和 React Native 中 JavaScript 的灵活性为开发人员提供了强大的工具来表达他们的想法并高效地构建功能丰富的应用程序。

学习曲线

框架的学习曲线是指开发人员熟练使用该框架所需的时间和精力。

Flutter 的学习曲线

Flutter 的学习曲线相对简单,尤其是对于熟悉 Java 或 C++ 等面向对象编程语言的开发人员而言。其文档和资源结构良好且内容全面,使开发人员更容易上手。Flutter 采用基于小部件的方法,其中用户界面使用小部件层次结构构建,热重载功能使开发人员可以立即看到开发过程中所做的更改。Flutter 社区充满活力且支持性强,为开发人员提供了充足的学习资源、教程和论坛,以提升他们的技能并在需要时寻求帮助。

React Native 的学习曲线

React Native 的学习曲线会因开发人员对 JavaScript 和 React 库的熟悉程度而异。如果开发人员已经熟悉 JavaScript 和 React,他们可以快速掌握 React Native 的基础知识。React Native 遵循基于组件的架构,允许代码重用和模块化开发。React Native 的文档非常丰富,并且有一个庞大的开发人员社区积极分享他们的知识并提供帮助。学习资源和社区支持的可用性使开发人员更容易学习和精通 React Native。

Flutter 和 React Native 哪个更好?

虽然上面关于 React Native 和 Flutter 之间差异的全面讨论已经阐明了它们各自的优势和考虑因素,但得出一个简洁的结论很重要。

Flutter 与 React Native 之争中没有绝对的赢家,因为这两个框架都提供了快速而强大的跨平台开发体验。它们使开发人员能够创建在多个平台上流畅运行的高效应用程序,其性能通常超越传统的原生应用程序。

Flutter 之所以成为备受推荐的框架,是因为它始终支持频繁的操作系统更新,并且其 UI 组件不依赖于原生元素。这种独立性确保了更高的稳定性,并降低了新系统更新出现问题的可能性。另一方面,React Native 对原生 UI 元素的依赖可能会在引入新的系统更新时偶尔导致轻微的兼容性挑战。

对于开发人员来说,Flutter 和 React Native 之间的选择可能会受到他们的编程背景和对某些语言的熟悉程度的影响。对于具有 JavaScript 背景的开发人员来说,React Native 具有优势,因为他们可以利用现有的知识和技能快速学习和使用 React Native,具有 Java 或 Kotlin 背景的开发人员可能会发现采用 Flutter 更容易。

最终,Flutter 和 React Native 之间的选择应基于项目的具体要求、开发团队的专业知识以及对平台特定功能的需求。

React Native 与 Flutter:你的应用该如何选择? - BTool博客 - 在线工具软件,为开发者提供方便

相关文章:

React Native 与 Flutter:你的应用该如何选择?

Flutter 和 React Native 都被认为是混合应用程序开发中的热门技术。然而,当谈到为你的项目使用框架时,你必须考虑哪一个是最好的:Flutter 还是 React Native? 本篇文章包含 Flutter 和 React Native 在各个方面的差异。因此&…...

DP学习——状态模式

学而时习之,温故而知新。 状态模式 角色 2个角色,引用类,状态行为类。 和策略模式很相似 状态行为封装成很多独立的状态行为类——就是把不同的状态及其要执行的方法单独封装起来。 而策略模式类似,是不同的算法封装成一个个…...

前端性能优化面试题汇总

面试题 1. 简述如何对网站的文件和资源进行优化? 参考回答: 举列: 1.文件合并(目的是减少http请求):使用css sprites合并图片,一个网站经常使用小图标和小图片进行美化,但是很遗憾这些小图片…...

C#基于SkiaSharp实现印章管理(4)

前几篇文章实现了绘制不同外形印章的功能,印章内部一般包含圆形、线条等形状,有些印章内部还有五角星,然后就是各种样式的文字。本文实现在印章内部绘制圆形、线条、矩形、椭圆等四种形状。   定义FigureType枚举记录印章内部形状&#xff…...

Vue全家桶 - pinia 的理解和学习2(Pinia 核心概念的插件、组件外的 Store 和 服务器渲染(SSR))

Pinia(Vue 的专属状态管理库) Vue全家桶 - pinia 的理解和学习1(Pinia 核心概念的 Store、State、Getter、Action) https://blog.csdn.net/weixin_54092687/article/details/140520675 插件 由于有了底层 API 的支持&#xff0c…...

数学建模(6)——预测类模型目录

预测模型是一类通过分析和建模历史数据来预测未来结果的算法或模型。这些模型广泛应用于各种领域,包括金融、医疗、市场营销、气象、制造业等。以下是一些常见的预测模型: 1. 回归模型 线性回归(Linear Regression):…...

安卓刷入系统证书

设备:Pixel XL 证书:reqable-ca.crt 刷入前需要手机已刷入Magisk 使用USB充电线连接手机,打开Windows终端面板手机打开Magisk,开启Shell的Root权限Windows终端输入su获取root权限查看SELinux状态并修改为Permissive修改system分…...

中科亿海微信号采集核心板在振动采集场景中的应用

在工业现场控制领域,对于旋转物体的速度我们通用的做法是测量旋转所产生的振动量来倒推设备的转速值。振动采集系统是一种广泛用于检测和记录系统振动的设备,整体包括传感器和数据采集两部分。传感器类型包括加速度传感器、速度传感器和位移传感器&#…...

`panic` 是 Go 语言中用来表示发生了严重错误的一种机制

目录 panic 是 Go 语言中用来表示发生了严重错误的一种机制案例goroutine空指针是什么栈展开是什么defer 语句会按照 LIFO(后进先出)的顺序执行 panic 是 Go 语言中用来表示发生了严重错误的一种机制 在 Go 程序中,panic 是一种运行时错误&a…...

【BUG】已解决:requests.exceptions.ProxyError: HTTPSConnectionPool

已解决:requests.exceptions.ProxyError: HTTPSConnectionPool 目录 已解决:requests.exceptions.ProxyError: HTTPSConnectionPool 【常见模块错误】 原因分析 解决方案 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&am…...

Python实现招聘数据采集 ,并做可视化分析

转眼秋招快到了, 今天来学习一下如何用Python采集全网招聘数据,并进行可视化分析,为就业准备~ 话不多说开始造 源码和详细的视频讲解我都打包好了,文末名片自取 准备工作 首先你需要准备这些 环境 Python 3.10 Pycharm 模块…...

ES中的数据类型学习之Aggregate metric(聚合计算)

Aggregate metric field type | Elasticsearch Guide [7.17] | Elastic 对于object类型的字段来说,可以存子字段为 min/max/sum/value_count PUT my-index {"mappings": {"properties": {"my-agg-metric-field": { -- 字段名"ty…...

看准JS逆向案例:webpack逆向解析

🔍 逆向思路与步骤 抓包分析与参数定位 首先,我们通过抓包工具对看准网的请求进行分析。 发现请求中包含加密的参数b和kiv。 为了分析这些加密参数,我们需要进一步定位JS加密代码的位置。 扣取JS加密代码 定位到JS代码中的加密实现后&a…...

【C语言】 利用栈完成十进制转二进制(分文件编译,堆区申请空间malloc)

利用栈先进后出的特性,在函数内部,进行除二取余的操作,把每次的余数存入栈内,最后输出刚好就是逆序输出,为二进制数 学习过程中,对存储栈进行堆区的内存申请时候,并不是很熟练,一开始…...

如何解决ChromeDriver 126找不到chromedriver.exe问题

引言 在使用Selenium和ChromeDriver进行网页自动化时,ChromeDriver与Chrome浏览器版本不匹配的问题时有发生。最近,许多开发者在使用ChromeDriver 126时遇到了无法找到chromedriver.exe文件的错误。本文将介绍该问题的原因,并提供详细的解决…...

Anaconda下安装配置Jupyter

Anaconda下安装配置Jupyter 1、安装 conda activate my_env #激活虚拟环境 pip install jupyter #安装 jupyter notebook --generate-config #生成配置文件提示配置文件的位置: Writing default config to: /root/.jupyter/jupyter_notebook_config.py检查版本&am…...

蓝队黑名单IP解封提取脚本

应用场景:公司给蓝队人员一个解封IP列表,假如某个IP满足属于某某C段,则对该IP进行解封。该脚本则是进行批量筛选出符合条件的白名单IP 实操如下:公司给了一个已经封禁了的黑名单IP列表如下(black) 公司要求…...

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及,充电设施的便捷性、智能化需求日益凸显,共享充电桩语音IC应运而生,成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势,希望能够帮助您。 一、NV170D语音ic概述…...

ARM 单片机裸机任务调度框架

前言: 在没有使用操作系统的情况下,一个合理的裸机任务调度方式,可以更好的提供数据的处理,和用户体验,有多种任务调度的方式。 方案 1: 从上到下的任务调度方式,C语言程序的代码是在main函数…...

.Net 8 控制台程序部署(Linux篇)

在无流量Linux环境下部署.NET8开发的控制台程序 写在前面准备远程访问安装环境程序部署1.下载并导入2.解压并配置3.发布程序4.创建Systemd服务单元文件5.启用并启动服务 写在结尾 写在前面 好久没更新文章了,今天给大家带来的是在在无流量的Linux工控机上部署.Net8…...

LeetCode:x的平方根(C语言)

1、问题概述:给你一个非负整数 x,计算并返回 x 的 算术平方根 ,返回类型得是一个整数,小数舍弃 2、示例 示例 1: 输入:x 4 输出:2 示例 2: 输入:x 8 输出:…...

深入浅出WebRTC—DelayBasedBwe

WebRTC 中的带宽估计是其拥塞控制机制的核心组成部分,基于延迟的带宽估计是其中的一种策略,它主要基于延迟变化推断出可用的网络带宽。 1. 总体架构 1.1. 静态结构 1)DelayBasedBwe 受 GoogCcNetworkController 控制,接收其输入…...

JAVA开发工具IDEA如何连接操作数据库

一、下载驱动 下载地址:【免费】mysql-connector-j-8.2.0.jar资源-CSDN文库 二、导入驱动 鼠标右击下载到IDEA中的jar包,选择Add as Library选项 如图就导入成功 三、加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 四、驱动管理…...

简化AI模型:PyTorch量化技术在边缘计算中的应用

引言 在资源受限的设备上部署深度学习模型时,模型量化技术可以显著提高模型的部署效率。通过将模型的权重和激活从32位浮点数转换为更低位数的值,量化可以减少模型的大小,加快推理速度,同时降低能耗。 模型量化概述 定义与优势…...

拥抱AI时代:解锁Prompt技术的无限潜力与深远影响

拥抱AI时代:解锁Prompt技术的无限潜力与深远影响 引言 在人工智能的浩瀚星空中,自然语言处理(NLP)无疑是最耀眼的星辰之一。随着技术的不断演进,NLP已经从最初的简单问答系统发展成为能够生成复杂文本、理解人类情感与…...

第123天:内网安全-域防火墙入站出站规则不出网隧道上线组策略对象同步

目录 案例一: 单机-防火墙-限制端口\协议出入站 案例二:不出网的解决思路 入站连接 隧道技术 案例三:域控-防火墙-组策略对象同步 案例四:域控-防火墙-组策略不出网上线 msf cs 案例一: 单机-防火墙-限制端口\…...

博客建站4 - ssh远程连接服务器

1. 什么是SSH?2. 下载shh客户端3. 配置ssh密钥4. 连接服务器5. 常见问题 5.1. IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! 1. 什么是SSH? SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录到其他…...

MySQL--索引(3)

1.索引创建注意点 选择合适的字段 1.不为 NULL 的字段 索引字段的数据应该尽量不为 NULL,因为对于数据为 NULL 的字段,数据库较难优化。如果字段频繁被查询,但又避免不了为 NULL,建议使用 0,1,true,false 这样语义较为清晰的短值或…...

sql_exporter通过sql收集业务数据并通过prometheus+grafana展示

下载并解压安装sql_exporter wget https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz #解压 tar xvf sql_exporter-0.5.linux-amd64.tar.gz -C /usr/local/修改主配置文件 cd /usr/local/ mv sql_exporter-0.5.linux-amd64 s…...

pytorch 笔记:torch.optim.Adam

torch.optim.Adam 是一个实现 Adam 优化算法的类。Adam 是一个常用的梯度下降优化方法,特别适合处理大规模数据集和参数的深度学习模型 torch.optim.Adam(params, lr0.001, betas(0.9, 0.999), eps1e-08, weight_decay0, amsgradFalse, *, foreachNone, maximizeFa…...

开源AI智能名片小程序:深度剖析体验优化策略,激活小程序生命力的运营之道

摘要:在移动互联网的浪潮中,微信小程序凭借其无需下载、即用即走的特性,迅速成为企业连接用户、拓展市场的重要桥梁。开源AI智能名片小程序,作为这一领域的创新尝试,旨在通过融合人工智能技术与传统商务名片的概念&…...

ML.Net 学习之使用经过训练的模型进行预测

什么是ML.Net:(学习文档上摘的一段:ML.NET 文档 - 教程和 API 参考 | Microsoft Learn 【学习入口】) 它使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。 借助此功能,可以使用应用程序的可用数据进行自…...

为什么 centos 下使用 tree 命令看不见 .env 文件

CentOS 下使用 tree 命令看不到 .env 文件主要有两个可能的原因: 默认情况下,tree 命令不显示隐藏文件。在 Linux 系统中,以点(.)开头的文件或目录被视为隐藏文件。.env 文件就属于这种隐藏文件。 您可能没有安装 tree 命令。如果在 CentOS …...

数据库基础与性能概述及相关术语

在计算机科学领域,特别是数据库技术中,掌握与数据库性能相关的专业词汇对于数据库管理员、开发人员及数据分析师等专业人员来说至关重要。以下是一篇关于计算机必背单词——数据库性能相关的详细解析. 一、数据库基础与性能概述 数据库是计算机科学中的…...

docker基于外部缓存加速构建方案

开启外部缓存 http://your_apt_cacher_ng_server:3142 是一个示例 URL,表示需要设置的 apt-cacher-ng 代理服务器的地址。apt-cacher-ng 是一个本地代理服务器,可以缓存从官方 APT 仓库下载的软件包,从而加速后续的下载过程,并减…...

【C语言】 作业11 链表+实现函数封装

递归实现链表数据互换,纯不会,明天再说 1、链表实现以下功能 链表,创建链表,申请节点,判空,头插,遍历输出,通过位置查找节点,任意位置插入,头删,…...

【Ubuntu】Ubuntu20修改MAC地址

文章目录 一、临时修改MAC地址(重启后复原)二、永久修改MAC地址 场景:在做虚拟机复制时,复制完的两台虚拟机存在相同MAC,导致无法分别分配IP。 解决:修改一台虚拟机的MAC地址。 一、临时修改MAC地址&#…...

ClickHouse集成LDAP实现简单的用户认证

1.这里我的ldap安装的是docker版的 docker安装的化就yum就好了 sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl start docker 使用下面的命令验证sudo docker run hello-world docker pull osixia/openl…...

C语言-预处理详解

1.预处理符号 C语言中设置了一些预定义符号,可以直接使用,预定义符号是在预处理期间处理的。 __FILE__//代表当前进行编译的源文件 __LINE__//文件当前行号 __DATE__//文件当前日期 __TIME__//文件当前时间 __STDC__//如果编译器遵循ANSIC,…...

计算机网络-VLAN间通信(三层通信)模拟实现

目录 VLAN基础知识VLAN和普通LAN区别划分VLAN的原因 实现VLAN间的通信(三层通信)方案一:多臂路由方案二:单臂路由方案三:三层交换机 VLAN基础知识 VLAN(Virtual Local Area Network,虚拟局域网…...

【JAVA】数据类型及变量

🎉欢迎大家收看,请多多支持🌹 🥰关注小哇,和我一起成长🚀个人主页🚀 Java的数据类型 可以分为两类,基本数据类型和引用数据类型 基本数据类型有4类8种,4类分别是整型 浮…...

微软蓝屏事件暴露的网络安全问题

目录 1.概述 2.软件更新流程中的风险管理和质量控制机制 2.1.测试流程 2.2.风险管理策略 2.3.质量控制措施 2.4.小结 3.预防类似大规模故障的最佳方案或应急响应对策 3.1. 设计冗余系统 3.2. 实施灾难恢复计划 3.3. 建立高可用架构 3.4. 类似规模的紧急故障下的响应…...

11 - FFmpeg - 编码 AAC

Planar 模式是 ffmpeg内部存储模式,我们实际使用的音频文件都是Packed模式的。 FFmpeq解码不同格式的音频输出的音频采样格式不是一样。 其中AAC解码输出的数据为浮点型的 AV_SAMPLE_FMT_FLTP 格式,MP3 解码输出的数据为 AV_SAMPLE_FMT_S16P 格式(使用的…...

OS Copilot初体验的感受与心得

本文介绍体验操作系统智能助手OS Copilot后,个人的一些收获、体验等。 最近,抽空体验了阿里云的操作系统智能助手OS Copilot,在这里记录一下心得与收获。总体观之,从个人角度来说,感觉这个OS Copilot确实抓住了不少开发…...

Ajax学习笔记

文章目录标题 Ajax学习笔记axios使用axios请求拦截器axios响应拦截器优化axios响应结果 form-serialize插件图片上传HTTP协议请求报文相应报文接口文档 AJAX原理 - XMLHttpRequest使用XMLHttpRequestXMLHttpRequest - 查询参数查询字符串对象 XMLHttpRequest - 数据提交 事件循…...

医学深度学习与机器学习融合的随想

医学深度学习与机器学习融合的随想 近年来,深度学习(图像类)和机器学习在医学领域的应用取得了飞速发展,为医学影像分析、疾病诊断和预后预测等领域带来了革命性的变革。深度学习擅长从复杂数据中提取高层次特征,而机…...

坑人的macos tar 命令 (实际上是bsdtar)换用 gnu tar

周末 看着笔记本上好用的朗文当代高级词典(mac版)和其它两部词典,准备复制到黑苹果台式机上去。考虑到词典内容有太多小文件,普通复制传输太慢,毫无疑问用 tar 打包肯定快而且能保留原始文件的各种信息。命令如下: time tar czf …...

【SpringBoot3】全局异常处理

【SpringBoot3】全局异常处理 一、全局异常处理器step1:创建收入数字的页面step2:创建控制器,计算两个整数相除step3:创建自定义异常处理器step5:创建给用提示的页面step6:测试输入(10/0) 二、BeanValidato…...

vue-Treeselect

一、Node KeyTypeDescriptionid (required)Number | String用于标识树中的选项。其值在所有选项中必须是唯一的label (required)String用于显示选项childrennode[] | null声明一个分支节点。你可以: 1) 设置为由a组成的子选项数组。叶节点,b…...

【机器学习框架TensorFlow和PyTorch】基本使用指南

机器学习框架TensorFlow和PyTorch:基本使用指南 目录 引言TensorFlow概述 TensorFlow简介TensorFlow的基本使用 PyTorch概述 PyTorch简介PyTorch的基本使用 TensorFlow和PyTorch的对比结论 引言 随着深度学习的快速发展,机器学习框架在实际应用中起到…...