`

Flex进阶持续学习——性能优化

 
阅读更多

一. 参考资料

Performance-tuning Adobe AIR applications

Optimizing Adobe AIR for Code Execution, Memory & Rendering

Some ActionScript 3.0 Optimizations

Performance Tips for Adobe

Analyzing the size of the Flex framework (or why I hate the AdvancedDataGrid)

Best Practices for Performance

[官方文档] 优化Flash平台的性能 (中文,推荐)

Flex Performance Tips & Tricks (较新,含SDK4.5组件)

 

二. [优化Flash平台的性能] 笔记

综合:

1) 每个帧循环包括两个阶段、三部分:第一阶段(事件、enterFrame 事件)、第二阶段(呈现)。

2) 使用正值时,将舍入值转换为整数比使用 Math.floor() 方法快得多。

3) 可通过 Stage.frameRate 属性来查看帧速率。

4) 要降低代码大小,请避免使用Adobe. Flex. 框架、TLF 框架库或任何大型第三方 ActionScript 库。

 

1. 节省内存

1) 创建对象:

a) 正确选择ActionScript对象:

对于非交互式简单形 状,请使用 Shape 对象;

对于不需要时间轴的 交互式对象,请使用 Sprite 对象;

对于使用时间轴的动 画,请使用MovieClip 对象。

b) 使用 getSize() 方法为代码设置基准并确定任务的最有效对象。

c) 所有原始类型(String 除外)在内存中都是占用 4 – 8 个字节。使用特定类型的基元无法优化内存。

d) 尽可能重复使用对象并避免重新创建对象。

    尤其不要在循环中创建对象。重复使用 BitmapData 对象可以节省更多的内存。

        f) 对不断重复使用对象可以使用“对象池”技术。

    在初始化应用程序期间创建一定数量的对象并将其存储在一个池中,例如 Array 或 Vector 对象。

    对一个对象完成操作后,停用该对象以免它占用 CPU 资源,然后删除所有相互引用。

    然而,不要将引用设置为 null,这将使它符合垃圾回收条件。

    只需将该对象放回到池中,在需要新对象时可以对其进行检索。

 

2) 释放内存:

a) 删除对对象的所有引用以确保触发垃圾回收。

b) 当不再需要 BitmapData 对象时,要始终调用 dispose() 方法并将引用设置为 null,以便立即释放内存。

c) Flash Player 10.1 和 AIR 1.5.2 在 System 类中引入了一个名为 disposeXML() 的新方法。借助此方法,通过将 XML 树作为参数传递,可立即使 XML 对象可用于垃圾回收。

 

位图、滤镜:

a) 使用位图是优化呈现的一个好方法,因为 Flash Player 在屏幕上绘制像素需要的处理资源少于呈现矢量内容。

b) Flash Player 10.1 引入了一个适用于所有平台的新功能,称为 BitmapData 单个引用。

    从嵌入图像创建 BitmapData 实例时,将对所有 BitmapData 实例使用位图的同一版本。

    如果稍后修改位图,则在内存中为该位图提供其自身的唯一位图。

c) 避免使用滤镜,包括经过 Pixel Bender 处理的滤镜。

    将滤镜应用于显示对象时,Flash Player 将在内存中创建两个位图。

    最佳做法是,尽可能使用通过创作工具创建的位图来模拟滤镜。

d) 如果需要,使用 mip 映射功能缩放较大图像。

    Mip 映射功能仅适用于动态加载的图像或嵌入位图。Mip 映射不适用于经过过滤或缓存的显示对象。

    仅当位图的宽度和高度为偶数时才可以进行 mip 映射。当位图的宽度或高度为奇数时,mip 映射将停止。

    Flash Player 10.1 当前支持直接从原始源 mip 映射到所需的目标大小。

    尽量少用 mip 映射。尽管它可以改进缩小位图的品质,但它对带宽、内存和速度都有影响。

e) 向显示对象应用任何 3D 转换都需要内存中的两个位图:一个作为源位图,另一个作为经过透视转换的版本。

    尽量避免在移动应用程序中使用 3D 属性。

 

回调:

a) 考虑使用简单的回调代替事件模型。

 

2. 最大程度减少CPU 使用量:

a) Flash Player 10.1 引入了两个有助于减少 CPU 处理的新功能。一个功能是移动设备上的睡眠模式,另一个功能是当 SWF 内容位于屏幕之外时暂停和恢复该内容。

b) 使用 hasPriority HTML 参数可延迟加载位于屏幕之外的 SWF 文件。

c) 尽可能考虑禁用鼠标交互,这有助于应用程序使用较少的 CPU 处理,从而减少电池使用量。

d) 要节省 CPU 电量,请限制补间的使用,这可以节省 CPU 处理、内存并延长电池寿命。

 

1) 冻结和解冻对象:

a) 使用 REMOVED_FROM_STAGE 和 ADDED_TO_STAGE 事件正确冻结和解冻对象。

b) 如果将显示对象从显示列表中删除,则完成删除后将其引用设置为 null 不能确保该对象是冻结的。

    如果不运行垃圾回收器,则对象将继续占用内存和 CPU 处理,即使此对象不再显示。

    要确保对象占用的 CPU 处理最少,请确保在将其从显示列表中删除后完全将其冻结。

c) Flash Player 10 对Loader 类引入了一个重要的新方法,称为 unloadAndStop()。

    通过此方法,可以卸载 SWF 文件、自动冻结加载的 SWF 文件中的每个对象并强制运行垃圾回收器。

 

2) 激活和停用对象:

a) 使用 Event.ACTIVATE 和 Event.DEACTIVATE 事件检测后台是否处于非活动状态,并相应地优化应用程序。

b) activate 和 deactivate 事件能让您实现与有时在移动设备或上网本上提供的“ 暂停和恢复” 功能类似的机制。

 

3) 计时器与 ENTER_FRAME 事件:

a) 根据内容是否为动画,选择计时器或 ENTER_FRAME 事件。

b) 对于执行时间太长的非动画内容,优先选择计时器,而不是 Event.ENTER_FRAME 事件。

c) 计时器的行为与 ENTER_FRAME 事件的行为类似,但是调度事件无需考虑帧速率。

d) 将应用程序中 Timer 对象和注册的 enterFrame 处理函数的数量降至最少。

e) 如果使用的是 Timer 对象,将产生与从多个 Timer 对象创建和调度事件相关联的开销。

    如果必须在不同的时间间隔触发不同的操作,以下提供了一些建议的替代方法:

    根据其发生的频率,使用最少数量的 Timer 对象和组操作。

    使用一个 Timer 对象,并以 Timer 对象的 delay 属性时间间隔的倍数触发操作。

f) 停止未使用的 Timer 对象。

g) 在 enterFrame 事件或 Timer 处理函数中,尽量减少对可导致重绘屏幕的显示对象外观的更改。

 

4) ActionScript 3.0 性能

a) 尽可能使用 Vector 类而不是 Array 类。

    Flash Player 10 引入了 Vector 类,其读写访问速度比 Array 类快。

            通过为矢量分配特定长度并将其长度设为固定值,可进一步优化。

b) 使用绘图 API 可加快代码执行。

     Flash Player 10 提供了一个新的绘图 API,使用它可获得更好的代码执行性能。

     此新绘图 API 包含下列方法:drawPath(), drawGraphicsData(), drawTriangles()

            路径越复杂,使用 drawPath() 方法获得的性能越高。

c) 使用事件捕获和冒泡可以最大程度地减少事件处理函数。

d) 使用 setVector() 方法可以快速绘制像素(from Flash Player 10)。

    如果使用的是较慢的方法,如 setPixel() 或 setPixel32(),请使用 lock() 和 unlock() 方法加快运行速度,

    调用 lock() 和 unlock() 可防止屏幕进行不必要的更新,

    但如果处理的是位图(而不是显示列表)中的像素(双缓冲),有时该技术不会提高性能。

e) 遍历像素的方法(例如 getPixel()、getPixel32()、setPixel() 和 setPixel32())可能速度很慢,特别是在移动设备上。如果可能,请使用在一次调用中检索所有像素的方法。

要读取像素,请使用 getVector() 方法,它比 getPixels() 方法速度快。

尽可能使用依赖于 Vector 对象的 API,因为它们的运行速度可能更快。

f) 对于 TextField 对象,请使用 appendText() 方法,而不要使用 += 运算符。

g) 尽可能更新循环外的文本字段。

h) 尽可能避免使用中括号运算符。

i) 尽可能使用内联代码以减少代码中函数的调用次数。

   移动内联代码是优化代码以获得良好性能的一种好方法。

   以内联方式移动函数调用可使代码运行速度提高四倍以上。

   这种方法适用于多种情况,但要注意它对可重用性和可维护性的影响。

j) 避免计算循环中的语句。

   遍历数组时最好储存数组长度,而不要每次循环都计算长度。

k) 对 while 循环使用相反的顺序。

 

5) 正则表达式:

a) 使用 String 类方法(如 indexOf()、substr() 或 substring())代替正则表达式来实现基本字符串查找和提取。

b) 如果需要对元素进行分组,但不需要在结果中隔离该组的内容,请使用非捕获组(“(?:xxxx)”)代替正则表达式中的(“(xxxx)”)组。

c) 如果需要对元素进行分组,但不需要在结果中隔离该组的内容,请使用非捕获组(“(?:xxxx)”)代替正则表达式中的(“(xxxx)”)组。

   与使用标准组语法相比,使用非捕获组语法速度更快且占用的内存更少。

d) 如果某正则表达式执行性能很差,考虑使用其他正则表达式模式。

 

3. 呈现性能

1) 重绘区域

a) 构建项目时始终使用重绘区域选项。

    可以使用 flash.profiler.showRedrawRegions() 方法以编程方式启用此选项:

// Enable Show Redraw Regions
// Blue color is used to show redrawn regions
flash.profiler.showRedrawRegions ( true, 0x0000FF );

        b) 要改进性能:

            将隐藏的运行字符的 visible 属性设置为 false 或将其从显示列表中完全删除;

            还应该停止其时间轴。

2) 避免将内容放在后台。而是在需要时将对象放在显示列表中。

 

3) 影片品质

a) 使用适当的舞台品质设置可提高呈现性能。

    使用 StageQuality.MEDIUM 通常就可以为移动设备提供足够高的品质,但在某些情况下,使用 StageQuality.LOW 也可以提供足够高的品质。

    Flash Player 8 及更高版本可以精确呈现消除锯齿的文本,甚至将舞台品质设置为 LOW 也可以达到这种效果。

    在某些设备上, Flash Player 10.1 可自动切换到 StageQuality.MEDIUM 以提高性能。

b) 在将矢量绘制为位图前后切换舞台品质是一项功能强大的技术,可以在屏幕上获得消除锯齿的内容。无论最终舞台品质如何,此技术都有效。(但使用cacheAsBitmap 属性时不能实现此技术。)

 

4) 尽可能避免使用 alpha 属性。

 

5) 应用程序帧速率

a) 通常,使用尽可能低的帧速率可以提高性能。

b) 如果视频是应用程序中唯一的动态内容,请使用低帧速率。

c) 动态更改应用程序的帧速率。

   可以通过设置 Stage.frameRate 属性(或Flex 中的 WindowedApplication.frameRate 属性)来更改帧速率。

d) 在编译 SWF 文件时,应为影片设置特定的帧速率。

 

    用于开始确定适用于不同类型活动的合适帧速率的常规指导:

  • 如果使用的是 Flex 框架,将起始帧速率保持为默认值;(对于 Flex 中的内置应用程序, spark.components.WindowedApplication 类已经内置了用于动态更改应用程序的帧速率的支持功能。当应用程序处于非活动状态时, backgroundFrameRate 属性将定义应用程序的帧速率。默认值为 1,该值将使用Spark 框架构建的应用程序的帧速率更改为 1 帧/ 秒。您可以通过设置 backgroundFrameRate 属性来更改后台帧速率。您可以将此属性设置为其他值,或将其设置为 -1 以关闭自动帧速率限制。)
  •  如果应用程序包括动画,适当的帧速率至少是 20 帧/ 秒。通常不必超过 30 帧/ 秒。
  •  如果应用程序不包括动画, 12 帧/ 秒的帧速率可能就足够了。
  •  系统以本机帧速率播放加载的视频,而与应用程序帧速率无关。如果视频是应用程序中唯一的移动内容,12 帧/ 秒的帧速率可能就足够了。
  •  如果应用程序没有输入焦点, 5 帧/ 秒的帧速率可能就足够了。
  •  当 AIR 应用程序不可见时,2 帧/ 秒或更低的帧速率可能就足够了。

6) 位图缓存

a) 在适当的时候,对复杂的矢量内容使用位图缓存功能。

b) 对显示对象,仅当缓存的位图可以一次生成,且随后无需更新即可使用时,才适合使用位图缓存功能,否则会有反效果。使用位图缓存会占用大量内存,要节省内存,可使用 cacheAsBitmap 属性,并对每个显示对象而不是容器激活该属性。

注:AIR 和 Packager for iPhone 中提供的 DisplayObject.cacheAsBitmapMatrix 属性没有此限制。通过使用
cacheAsBitmapMatrix 属性,您可以旋转、缩放、倾斜显示对象以及更改其 Alpha 值,而不触发重新生成位图。

c) 如果不在各个帧上旋转、缩放或更改缓存的内容,则位图缓存可提高呈现效果。但是,对于 X 和 Y 轴上的平移之外的任何转换,则不会提高呈现性能。

注:AIR 和 Packager for iPhone 中提供的 DisplayObject.cacheAsBitmapMatrix 属性没有此限制。

d) 滤镜依赖每次缓存的影片剪辑的播放头移动时更新的位图。因此,使用滤镜会自动将 cacheAsBitmap 属性设置为 true。应避免在动画内容中使用滤镜,因为这可能导致性能问题。

e) 当在移动 AIR 应用程序中使用缓存位图时,设置 cacheAsBitmapMatrix 属性。

    设置此属性后,可以在不重新生成缓存位图的情况下对对象应用任何二维转换(缩放、倾斜、旋转和平移对象),还可以在不重新生成缓存位图的情况下更改 alpha 属性。(cacheAsBitmap 属性必须设置为 true,对象不得设置任何 3D 属性。)

注:如果使用颜色转换,通过 transform.colorTransform 属性更改 alpha 值,转换对象中使用的 alpha 必须位于 0 和 255 之间。以任何其他方式更改颜色转换都会重新生成缓存位图。

f) 使用 BitmapData 类创建自定义位图缓存行为。

g) 使用位图缓存功能和 opaqueBackground 属性可提高文本呈现性能。此技术适用于不随时间更改的内容。

 

7) GPU

a) Flash Player 10.1 一项重要的新功能是它可以使用 GPU 在移动设备上呈现图形内容。

    使用GPU 可以优化滤镜、位图、视频和文本的呈现。

    Flash Player 10.1 还有一个限制,即阻止在屏幕上呈现 Pixel Bender 效果。在使用硬件加速时,这些效果可能呈现为黑色的正方形。

    在 Flash Player 10.1中, GPU 用于计算图形,从而大大加快了呈现速度。

b) 通过在应用程序描述符中加入 <renderMode>gpu</renderMode>,在 AIR 应用程序中启用硬件图形加速。

          

    GPU 呈现模式最佳实践:

  • 限制舞台上可见项目的数量。当不再需要显示显示对象时,可将其 visible 属性设置为 false。(不要简单地将其移出舞台、将其隐藏在另一个对象后面或将其 alpha 属性设置为0。)如果彻底不再需要显示对象,使用 removeChild() 将其从舞台删除。
  • 重复使用对象,而不是创建和销毁它们。
  • 使位图的大小接近但小于 2n 乘 2m 位。尺寸不必正好为 2 的整数次幂,但是应该接近 2 的整数次幂,而不需要更大。(31 乘 15 像素的图像比 33 乘 17 像素的图像的呈现速度更快。)
  • 如果可能,在调用 Graphic.beginBitmapFill() 方法时将 repeat 参数设置为 false。
  • 不要过分夸张。将背景色作为背景。不要将较大形状进行叠放。每个必须绘制的像素都需要成本。
  • 避免使用带有狭长突起、自相交的边缘或边缘周围存在许多细节的形状。呈现这些形状需要的时间比边缘平滑的显示对象
    长。
  • 限制显示对象的大小。
  • 针对不经常更新图形的线索对象启用 cacheAsBitMap 和 cacheAsBitmapMatrix。
  • 避免使用 ActionScript 绘图 API (Graphics 类)创建图形。而是尽可能在创作时以静态方式创建这些对象。
  • 先将位图资产缩放到最终大小,然后再将其导入。

8) 推荐使用操作的异步版本,而不是同步版本(如果适用)。

 

9) AIR 应用程序中,考虑使用不透明的矩形应用程序窗口而不是透明窗口。

要为应用程序的初始窗口使用不透明窗口,请在应用程序描述符 XML 文件中设置以下值:
<initialWindow>
<transparent>false</transparent>

</initialWindow>

对于 Flex Window 组件,确保在调用 Window 对象的 open() 方法前,该组件的透明属性已设置为 false (默认值)。

 

10) 对形状进行平滑处理以改进呈现性能。

 

4. 优化网络交互

1) Flash Player 10.1 针对所有平台上的网络优化引入了一组新功能,包括循环缓冲和智能搜索(智能搜索功能要求使用 Adobe® Flash® Media Server 3.5.3。)。

 

2) 只能在缓存流的边界内进行搜索。如果偏移量超出范围, NetStream.seek() 有时会失败,此时将调度
NetStream.Seek.InvalidTime 事件。

 

3) 将应用程序分为多个 SWF 文件。

 

4) 针对 IO 错误提供事件处理函数和错误消息。

    最佳做法是谨记为用户提供一种再次加载内容的方式。

 

5) 使用 Flash Remoting 和 AMF 实现优化的客户端- 服务器数据通信。

 

6) 加载资源后将本地缓存,而不是在每次需要时从网络进行加载。

 

    可以根据资源的类型和性质通过多种方式缓存资源:

  • 媒体资源(例如图像和视频):使用 File 和 FileStream 类将文件保存到文件系统;
  • 单个数据值或小型数据集:使用 SharedObject 类将值另存为本地共享对象;
  • 较大数据集:将数据保存到本地数据库或对数据序列化并将其保存到文件中。

提示:对于缓存数据值, open-source AS3CoreLib project 包含一个 ResourceCache 类,可为您执行加载和缓存操作。

 

 

5. 处理媒体

1) 有关优化移动设备上的视频性能的信息,详见:优化用于移动传送的 Web 内容的工具

 

2) 在 Flash Player 9.0.115.0 及更高版本中,Flash Player 可播放 AAC 文件(AAC Main、AAC LC 和 SBR)。

    使用 AAC 文件代替 MP3 文件可实现简单优化。

    在比特率相同的情况下, AAC 格式的文件比 MP3 格式的文件品质更好、文件大小更小。

 

3) 与视频解码类似,音频解码要求高 CPU 周期,并可通过利用设备上提供的硬件来进行优化。

    Flash Player 10.1 在解码 AAC文件(LC、HE/SBR 配置文件)或 MP3 文件(不支持 PCM)时,可以检测和使用硬件音频驱动程序来提高性能。

 

6. SQL数据库性能

1) 针对数据库性能的应用程序设计

     a) 不要在执行 SQLStatement 对象后更改其 text 属性。

         针对每个 SQL 语句使用一个 SQLStatement 实例并使用语句参数提供不同值。

     b) 使用数据库索引可以提高执行数据比较和排序的速度。

 

         使用下列准则可以计划索引策略:

  • 对连接表、WHERE 子句或 ORDER BY 子句中使用的列编制索引;
  • 如果这些列经常一起使用,请在单个索引中对其编制索引;
  • 对于包含您检索的、按字母顺序排序的文本数据的列,请为索引指定 COLLATE NOCASE 排序规则。

     c) 考虑在应用程序空闲时间期间预编译 SQL 语句。

     d) 在一个事务中组合多个 SQL 数据更改操作。

     e) 使用 SQLStatement 类的 execute() 方法(带有 prefetch 参数)和 next() 方法处理各部分中的大量 SELECT 查询结果。

     f) 考虑使用共用一个数据库的多个异步 SQLConnection 对象来同时执行多个语句。(不建议对移动设备使用此方法。)

 

提示:Paul Robertson 创建了一个开放源代码库 ,可以帮助您结合使用多个 SQLConnection 对象的优点并在最大程度上减少潜在缺点 此库使用 SQLConnection 对象池并管理相关联的 SQLStatement 对象。

 

2) 数据库文件优化

     a) 避免数据库架构更改。

     b) 在架构更改后,使用 SQLConnection.compact() 方法优化数据库。

         但是, compact() 操作可能需要大量的时间,尤其是数据库文件日益增长时。

 

3) 不是非常必要但推荐的数据库运行时处理

     a) 在 SQL 语句中使用完全限定的表名称(包括数据库名称)。

     b) 在 SQL INSERT 和 SELECT 语句中使用显式列名称。

     c) 除非将该表与其本身进行比较,否则避免在一个语句中多次连接同一个表。

 

 

4) 有效的 SQL 语法

     a) 使用 JOIN (位于 FROM 子句中)可以在查询中包含表,而不是在 WHERE 子句中包含子查询。

         即使您只需要使用表数据进行过滤而不是生成结果集,该技巧也同样适用。

         在 FROM 子句中连接多个表执行操作的效果比在 WHERE 子句中使用子查询的效果要好。

     b) 避免使用无法利用索引的 SQL 语句。

         这些语句包括使用子查询中的聚合函数、子查询中的 UNION 语句或包含 UNION 语句的 ORDER BY 子句。

     c) 考虑避免使用 LIKE 运算符,特别是带有前导通配符的运算符。

     d) 考虑避免使用 IN 运算符。

         如果预先知道可能的值,可使用 AND 或 OR 写入 IN 操作以加快执行速度。

     e) 考虑使用 SQL 语句的替代形式以提高性能。

 

5) SQL 语句性能:直接比较替代 SQL 语句以确定哪个速度更快。

    比较多个版本的 SQL 语句的性能的最佳方法是直接使用您的数据库和数据对它们进行测试。

 

 

   下列开发工具提供了运行 SQL 语句时的执行次数:

  • Run! (Paul Robertson 提供的 AIR SQL 查询创作工具和测试工具)
  • Lita (David Deraedt 提供的 SQLite 管理工具)

 

7. 基准测试和部署

1) 基准测试工具

     a) Stats 类:在运行时使用 Flash Player 的发行版(而不是外部工具)设置代码。

     b) PerformanceTest 类:一种可集成到单元测试工作流程中的工具。

     c) Flash Builder 探查器。

     d) FlexPMD:通过审核 ActionScript 3.0 或 Flex 源目录来提高代码品质。

 

2) 部署:在 Flash Builder 中导出应用程序的最终版本时,确保导出该应用程序的发行版非常重要。

    导出发行版将删除 SWF 文件中包含的调试信息。

    删除调试信息将减小 SWF 文件的大小并有助于加快应用程序的运行速度。

 

 

 

分享到:
评论

相关推荐

    Flex 学习文档必备

    "Flex 学习文档必备"这一标题表明了这是一份针对Flex开发者的重要学习资源集合,其中包含了关键的学习资料,帮助初学者或进阶者掌握Flex开发的核心知识。 描述中提到的两个文件——"Flex3+Style+Explorer_V3.0Beta....

    DeepSeek与AI幻觉-清华大学团队制作

    DeepSeek与AI幻觉-清华大学团队制作 一、什么是AI幻觉 (定义与基础概念) 二、DeepSeek为什么会产生幻觉 (聚焦特定AI模型的幻觉成因分析) 三、AI幻觉评测 (评估AI幻觉的频率、类型与影响的方法) 四、如何减缓AI幻觉 (解决方案与技术优化方向) 五、AI幻觉的创造力价值 (探讨幻觉在创新场景中的潜在益处,如艺术生成、灵感激发等)

    协同过滤算法商品推荐系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计

    协同过滤算法商品推荐系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 前台用户可以实现注册登录、商品浏览,在线客服,加入购物车,加入收藏,下单购买,个人信息管理,收货信息管理,收藏管理,评论功能。 后台管理员可以进行用户管理、商品分类管理、商品信息管理、订单评价管理、系统管理、订单管理。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。

    MES系统数字化工厂解决方案.pptx

    MES系统数字化工厂解决方案.pptx

    MUI调用照片以及裁剪和图库照片上传到服务器

    MUI调用照片以及裁剪和图库照片上传到服务器

    ChatGPT付费创作系统V3.1.3独立版 WEB端+H5端+小程序端 (新增DeepSeek高级通道+新的推理输出格式)

    GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序, 是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。这是一种基于人工智能技术的问答系统, 可以实现智能回答用户提出的问题。相比传统的问答系统,ChatGPT可以更加准确地理解用户的意图, 提供更加精准的答案。同时系统采用了最新的GPT3.5接口与GPT4模型,同时还支持型,文心一言,腾讯混元, 讯飞星火,通义千问,DeepSeeK,智普等等国内各种大模型,可以更好地适应不同的应用场景,支持站点无限多开, 可以说ChatGPT付费创作系统目前国内相对体验比较好的一款的ChatGPT及多接口软件系统。 新增接入DeepSeek-R1、DeepSeek-V3(Ollama自部署和第三方均支持)、高级通道增加DeepSeek、 支持AI接口输出的reasoning_content字段(新的推理输出格式)、更新模型库、修复导出Excel的bug等功能, 优化了云灵Midjourney接口,出图更快更稳定。小程序端变化不大该系统版本测试下来比较完美, 老版本升级时数据库结构同步下,同时把原来

    基于java的美食点餐管理平台设计的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一款基于Java技术的美食点餐管理平台的设计与实现。该平台旨在优化传统餐饮行业的服务流程,通过智能化的点餐系统、高效的订单处理、智能库存管理和数据分析等功能,为用户提供便捷高效的点餐体验,并提升餐厅管理效率和服务质量。系统涵盖了前端设计、后端开发、数据库设计等方面,采用了成熟的Java技术和现代Web开发框架,如Spring Boot、Vue.js或React,确保系统的高效性和稳定性。此外,文档还包括详细的用户界面设计、模块实现以及系统部署指南,帮助开发者理解和搭建该平台。 适合人群:具备一定的Java编程基础和技术经验的研发人员、IT从业者以及有意开发类似系统的企业和个人。 使用场景及目标:①为餐厅提供一个集点餐、订单处理、库存管理于一体的高效平台;②优化传统餐饮服务流程,提升客户服务体验;③利用大数据分析辅助决策,助力餐饮企业精细化运营;④通过集成多种支付方式和其他外部系统,满足多样化的商业需求。 其他说明:本项目不仅提供了完整的技术方案和支持文档,还针对实际应用场景提出了多个扩展方向和技术优化思路,旨在引导用户不断迭代和完善该平台的功能和性能。

    相场模拟与激光制造技术:选择性激光烧结、激光融覆中的凝固与枝晶生长研究,相场模拟与激光制造技术:选择性激光烧结、激光融覆及凝固过程中的枝晶生长研究,相场模拟 选择性激光烧结 激光融覆 凝固 枝晶生长

    相场模拟与激光制造技术:选择性激光烧结、激光融覆中的凝固与枝晶生长研究,相场模拟与激光制造技术:选择性激光烧结、激光融覆及凝固过程中的枝晶生长研究,相场模拟 选择性激光烧结 激光融覆 凝固 枝晶生长 ,相场模拟; 选择性激光烧结; 激光融覆; 凝固; 枝晶生长,相场模拟与激光工艺:枝晶生长的凝固过程研究

    基于ssh框架开发的厂区管理系统,集成增删改查功能。.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    关于加强新能源汽车安全管理涉及的法规标准分析.pptx

    关于加强新能源汽车安全管理涉及的法规标准分析.pptx

    基于SSM的校园二手交易平台.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    机器学习课程设计——基于AdaBoost的银行用户逾期行为检测.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    UI+svg+规范设置打包

    UI+svg格式

    关于乘用车燃料消耗量评价方法及指标强制性国家标准的分析.pptx

    关于乘用车燃料消耗量评价方法及指标强制性国家标准的分析.pptx

    openjpeg-1.5.1-18.el7.x64-86.rpm.tar.gz

    1、文件内容:openjpeg-1.5.1-18.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/openjpeg-1.5.1-18.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,fpga

    FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,fpga verilog实现视频协议bt656和1120组帧解帧代码 有文档介绍协议,有mod仿真,matlab代码仿真 ,FPGA; Verilog; BT656协议; 1120组帧解帧代码; 文档介绍; Mod仿真; Matlab代码仿真,FPGA Verilog:实现BT656与1120组帧解帧代码的仿真与文档化研究

    基于 RAG 与大模型技术的医疗问答系统(毕设&课设&实训&大作业&竞赛&项目)

    基于 RAG 与大模型技术的医疗问答系统,利用 DiseaseKG 数据集与 Neo4j 构 建知识图谱,结合 BERT 的命名实体识别和 34b 大模型的意图识别,通过精确的知识检索和问答生成, 提升系统在医疗咨询中的性能,解决大模型在医疗领域应用的可靠性问题。.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于 vue+elementUI+springboot 设计的 模仿'猪八戒'的服务外包平台.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    抖音视频带货:行业趋势与营销策略.pptx

    抖音视频带货:行业趋势与营销策略.pptx

    西门子动态密码程序:学习随机码生成与指针存储数据,Smartline触摸屏操作指南及编程视频教程,西门子动态密码程序:学习随机码生成与存储数据的智能之旅(视频讲解),200smart动态密码程序,触摸

    西门子动态密码程序:学习随机码生成与指针存储数据,Smartline触摸屏操作指南及编程视频教程,西门子动态密码程序:学习随机码生成与存储数据的智能之旅(视频讲解),200smart动态密码程序,触摸屏是smartline,西门子动态密码程序,,随机码的产生,指针用法存储数据,非常适合学习,而且是自己程序,还专门录制了一段视频来讲解编程的思路和画面的操作步骤。 ,200smart动态密码程序; touchscreen: smartline; 西门子动态密码程序; 随机码生成; 指针用法存储数据; 自学编程; 程序录制视频讲解。,西门子动态密码程序:触摸屏Smartline随机码生成与指针存储技术解析

Global site tag (gtag.js) - Google Analytics