首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏QQ音乐技术团队的专栏

    Q音直播Flutter裁剪方案(iOS)

    1、背景 Flutter作为一款优秀的跨平台方案,我们Q音团队一致保持高度关注,团队内部也一直在努力促进Flutter的应用框架建设。 在Q音直播接入Flutter的过程中,需要解决的首要问题便是”Flutter体积变大”。 本文将一步步剖析Flutter的体积问题,带领大家探寻每一个可能的体积优化点,结合实际项目和引擎源码,最终给出详细的体积优化实现方案。欢迎大家相互交流Flutter相关技术。 因此,要解决体积问题,需要对aar和framework的体积进行优化。 这部分能优化的空间很小,主要是通过裁剪引擎不需要的功能,减少体积。编译引擎时可以选择性编译skia和boringssl,收益大概只有几百K。 除此之外可以对Flutter的符号进行分离。

    2.5K20发布于 2021-02-05
  • 来自专栏贾志刚-OpenCV学堂

    OpenCV实战应用必备技能 | 模块裁剪

    对上图说明如下: 水平横着的都是基础模块,这个是OpenCV模块裁剪的时候必须选上的。竖直的模块都是OpenCV中在CMake生成阶段可配置选择的模块,如果需要你就加上,如果不需要就去掉。 可以看到,这里我们只编译很少部分的模块,总计21个模块,可以满足大部分应用场景使用,真正的80/20规则。这个对我们来说是个好消息,下面我就一起来验证下,我们这样编译出来的OpenCV是否可以用? 验证裁剪编译版本OpenCV功能 03 重新配置好开发环境(包含目录 + 库目录 + 连接器 + 环境变量, 然后重启VS2015/VS2019),运行以下测试代码: #include <opencv2 OpenCV重新编译与模块裁剪技能GET,从此以后千万别在我面前说OpenCV模块太多,太大,这个都不是事,关键是你会用吗?

    2.1K11发布于 2019-09-19
  • 来自专栏PostgreSQL研究与原理解析

    GPDB-内核特性-GP7动态分区裁剪

    GPDB-内核特性-动态分区裁剪 上文我们介绍了,GP7中ORCA不再支持动态分区裁剪。那么他的动态分区裁剪效果又是怎么实现的呢? GP7除ORCA优化器外还有PG优化器,他的动态分区裁剪执行计划由PG优化器生成。 2、PartitionSelector算子 PartitionSelector算子扫描子节点,然后执行ExecAddMatchingSubPlans进行分区裁剪裁剪结果存入part_prune_result 7)第2步,create_append_plan函数:root->partition_selector_candidates链表 --> root->partition_selector_candidates 这样就完成了分区裁剪,仅扫描满足条件的子分区。

    52220编辑于 2023-08-09
  • 来自专栏PostgreSQL研究与原理解析

    GPDB-内核特性-GP7不再支持动态分区裁剪

    GPDB-内核特性-GP7不再支持动态分区裁剪 GreenPlum支持分区表的功能,并通过分区裁剪来减少读取的数据量。分区裁剪分为静态分区裁剪和动态分区裁剪。 静态分区裁剪:执行计划在生成时,就通过条件值过滤出需要的子分区,执行时仅扫描裁剪后的分区即可;动态分区裁剪:发生在SQL执行阶段,需要根据维度表的数据动态分析出需要哪些分区。 经过分析查看GreenPlum的issues,发现GP7竟然不支持动态分区了: https://github.com/greenplum-db/gpdb/issues/11363 Partition table Master分支中,目前是GP7,Orca禁用了分区表,执行计划又回到要查询所有分区表。 那么,GP7中如何实现动态分区裁剪的效果呢?

    37320编辑于 2023-08-09
  • 来自专栏菩提树下的杨过

    ruby学习笔记(7)-闭

    的一个重要特征是:过程(方法)内部定义的变量,即使在方法调用完成以后,仍然可以继续引用到! return proc{|i| n +=i } #关键:proc是一个过程对象,只能由"委托"用call来调用,这里在过程内部引用了参数变量n,将会在多次call该过程后,保留对n的引用,形成闭!

    57050发布于 2018-01-22
  • 来自专栏路过君BLOG from CSDN

    EXTJS7 引入treegrid

    EXTJS7默认模板没有引入treegrid,使用treegird时会报错Unrecognized alias: widget.tree 1. 安装npm npm install @sencha/ext-modern-treegrid@7.0.0 注:不带版本号默认会安装6.6版本 2.

    55410发布于 2020-06-19
  • 来自专栏minlearnprogramming

    ​为tinycolinux制作应用

    本文关键字:tinycolinux自定义应用,tinycolinx内存运行,mysql重建/tmp/mysql.sock 在前面《发布tinycolinux》中,我们重点描述了将tinycolinux 安装到硬盘的情况,及处理安装应用到硬盘的情况,这也是大部分情形下的场景,其实,完全可以采取其rootfs放在livecd ram中运行而应用依然安装到硬盘的方式,这样更有利于vm container iaas 组建复合应用 ----- 官方提供了很多镜像,这些都很正交。 且还有构建源码,可往往我们还需要lnmp这样的组合,我们可以按《发布tinycolinux》part2中的硬盘安装应用方法来组合一次性安装(当然,这样它就不正交了但对一台vm container通常情况下仅需承载安装一次 ncurses-common.tcz,nginx.tcz,openssl-0.9.8.tcz,pcre.tcz,perl5.tcz,php5.tcz,readline.tcz,sqlite3.tcz,这些都是我们要组合进一个大应用的基础

    76320发布于 2020-09-29
  • 来自专栏柒八九技术收纳盒

    JS闭之灵魂7

    前言 无论你是前端老鸟还是即将遭受社会“毒打”的前端萌新,闭(Closures)都是一个在你获得心仪offer路上的拦路虎。 在前面的几篇文章中,我们从不同的角度来分析了何为闭等。 这篇文章,通过几个常见的闭应用场景评估一下,是否真正懂闭。 一图胜千言 直接拿来主义了,这是前几篇中,关于闭的一些简单汇总。 文章概要 Q1:慧眼认“” Q2: 参数为何凭空消失 Q3:作用域嵌套惹的祸 Q4:迟到的兑现,错误的值 Q5:变量的从一而终 Q6:公私分明 Q7:柯里化 Q1:慧眼认“” 仔细分析下面的各个方法 Q7:柯里化 现在有一个需求,让你写一个用于计算两数乘积的函数multiply function multiply(num1, num2) { // bala bala } 如果multiply( -- 后记 参考资料: 7 Interview Questions on JavaScript Closures. 再谈JS闭 兄台:JS闭包了解一下

    43410编辑于 2022-08-25
  • 来自专栏叶子陪你玩编程

    python闭应用案例1

    abcdefghijklmnopqrstuvwxyz' for key in letters: turtle.onkey(display2(key), key) 上面的display函数其实就是一个闭。 高阶函数中,内层函数携带外层函数中的参数、变量及其环境,一同存在的状态(即使已经离开了创造它的外层函数)被称之为闭。 abcdefghijklmnopqrstuvwxyz' for key in letters: turtle.onkey((lambda key=key:display(key)),key) screen.listen() 在装饰器中,闭应用的非常多 ---- 很多时候,可能你并不知道闭或者某个技术名词的概念,仅仅是根据问题你想出了前面的解决方法,而后听别人说才知道自己用的是闭,是不是有一种创造的感觉呢?

    71140编辑于 2022-05-22
  • 来自专栏十月梦想

    centos7解压nodejs压缩

    最近centos7安装nodejs,通过wget指令后发现压缩为 node-v8.11.1-linux-64.tar.xz压缩,使用之前的 tar -zvxf发现并不能解压.    

    75030发布于 2018-08-29
  • 来自专栏Owen's World

    PHP使用predispredis应用实例

    第一下载predis/predis 第二引用,添加实例类接口 application/common/Redis.php <?

    80530编辑于 2021-12-08
  • 来自专栏tea9的博客

    android aapt查看应用

    查看应用名 aapt dump badging xx.apk package: name='com.xx.www' versionCode='1' versionName='1.0' sdkVersion

    1.3K10编辑于 2022-07-16
  • 来自专栏Chris生命科学小站五年归档

    R基础|do7):查找交集common

    比如,我们有3个数据: a包含了1,2,3,4,5,6 b包含了2,7,4,5 c包含了4,2,5,7,9,10 a=c(1,2,3,4,5,6) b=c(2,7,4,5) c=c(4,2,5,7,9,10 在do中,有个函数专门用于查找交集:common common的对象是1个list,所以需要先把3个数据组成1个list。 abc = list(a, b, c) 查找共同元素 common(abc) 输出的结果是2、4、5 do中的其他命令 R基础|do(1):左截取、右截取、中间截取 R基础|do(2):替换 replace R基础|do(3):宽型数据转长型数据reshape_toLong(1) R基础|do(4):宽型数据转长型数据reshape_toLong(2)进阶 R基础|do(5):宽型数据转长型数据 reshape_toLong(3)直升机 R基础|do(6):长型数据转宽型数据

    40610编辑于 2023-02-28
  • 来自专栏yuyy.info技术专栏

    Docker 容器应用构建 deb

    而同事之前做过以linux安装的形式发布容器应用,这种方式更加正式且方便,遂复用之。 deb介绍 deb是 Debian 系列的应用安装格式。 公司名:google 安装的应用名:chrome 应用包含的镜像名:chrome-interface 此脚本支持多个镜像,这种情况下,应用安装后会创建多个容器 镜像在harbor仓库中的项目组:chrome-group | awk '{print("%.2f",$1/$2/$3)}' | awk '{print $2}') available=$(free | sed '1d;3d' | awk '{print $7} 删除应用文件(没有删除应用数据,因为更新时会先执行卸载脚本) #! dpkg -l|grep chrome 卸载 deb 卸载应用:dpkg -P chrome 删除本地数据:rm -rf /var/google/chrome Post Views: 33

    1.1K20编辑于 2023-10-18
  • 来自专栏云技术分享

    【CentOS_7】使用tcpdump抓明文

    tcpdump功能强大,更多参数可以参考 https://www.cnblogs.com/bhlsheji/p/5032912.html

    1.5K71发布于 2021-01-29
  • 来自专栏从零开始学自动化测试

    Fiddler抓7-post请求(json)

    &input2=ooo&remember=false 3.第三种:multipart/form-data:这一种是表单格式的,数据类型如下 ------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: form-data; name="text"title ------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition ------WebKitFormBoundaryrGKCBY7qhFd3TrwA-- 4.第四种:text/xml:这种直接传的xml格式

    2.4K70发布于 2018-04-08
  • 来自专栏HappenLee的技术杂谈

    C++雾中风景7:闭

    本来说好要聊一聊命名空间的,因为最近在看C++lambda表达式的内容,所以借这个机会我们来好好聊一聊C++的闭。 1.什么是闭? 闭(closure)是函数式编程的重要的语法结构。 这里我们用Python的代码来解释一下闭。 不同的语言实现闭的方式不同。Python以函数对象为基础,为闭是通过函数对象的属性来保存闭的变量。 闭的作用有很多,可以在python上实现动态代理,如装饰器等.......这里就不展开聊闭的使用,接下来我们要来重点看看在C++之中是如何实现闭的。 2.C++之中的闭 C++相对于C的优越点就在于C++能够支持面向对象的特性,C语言之中在语法层面是不能支持闭的。

    1.1K20发布于 2018-09-05
  • 来自专栏繁依Fanyi 的专栏

    uniapp 编译成鸿蒙应用提示【未正确配置鸿蒙应用名】

    应用名称 应用在华为应用市场详情页展示的名称。 应用名 仅当“应用类型”选择“HarmonyOS应用”时,才需在此处手动填写名。 此处的应用名必须与您DevEco Studio工程中配置的Bundle name一致。元服务名会在元服务创建成功后自动生成。 应用分类 应用分类设置后不支持修改,请谨慎选择。 HarmonyOS应用名需遵守如下规范: 必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字、下划线(_),如“harmony_11.huawei.com”。 长度为7~128个字符,且不可包含敏感词,不能将保留字符作为独立段呈现。 之后把名配置到 uniapp 的 manifest.json 的鸿蒙App 配置中的名中即可 然后再次打包编译即可!

    1.2K10编辑于 2025-02-21
  • 来自专栏飞鸟的专栏

    JavaScript闭应用场景(一)

    封装私有变量闭可以用于创建具有私有变量的模块化代码。通过将变量定义在外部函数内部,并将内部函数返回,可以创建一个封闭的作用域,使变量无法从外部直接访问。 保存状态闭可以用于保存函数的状态。当函数被调用时,它可以访问并修改闭中的状态,从而实现在多次调用之间保持数据的连续性。 迭代器闭可以用于实现迭代器模式,通过保留内部状态和索引来追踪迭代过程。

    54320编辑于 2023-05-17
  • 来自专栏Java后端技术栈cwnait

    Netty 粘应用案例及解决方案分析

    熟悉TCP变成的可以知道,无论是客户端还是服务端,但我们读取或者发送消息的时候,都需要考虑TCP底层粘/拆包机制,下面我们先看一下TCP 粘/拆和基础知识,然后模拟一个没有考虑TCP粘/拆导致功能异常的案例 主要内容: TCP粘/拆的基础知识 没考虑TCP粘/拆的问题案例 使用Netty解决读半包问题 1、TCP粘/拆 TCP是个“流“协议,所谓流,就是没有界限的一串数据。 TCP底层并不知道上层业务逻辑,它会根据TCP缓冲区的实际情况进行包的拆分,所以在业务上认为,一个完整的可能会被拆分成多个进行发送,也有可能把多个小的封装成一个大的数据发送,这就是所谓的TCP粘 2、TCP粘/拆发生的原因 问题产生的原因有三个:如下 应用程序write写入的字节大小大于套接口发送缓冲区大小; 进行MSS大小的分段; 以太网帧的payload大于MTU进行IP分片; 3、粘问题的解决策略 由于底层TCP无法理解上层业务数据,所以在底层是无法保证数据不被拆分和重组的,这个问题只能通过上层的应用协议栈设计来解决,根据业界的主流协议的解决方案,可以归纳如下: 消息定长

    1.6K40发布于 2019-07-16
领券