Gitee

ArrayList与LinkList性能对比----迭代元素

非 Y 不嫁゛ 提交于 2020-08-17 04:26:55
今天接着上一篇,测试迭代元素的性能 代码 码云路径 迭代元素List 结构的有两种方法,for(;;)和iterator() 1万的数量级结果如下图,耗时单位ms for 耗时 arrayList < linkList iterator 耗时 arrayList = linkList 10万的数量级结果如下图,耗时单位ms for 耗时 arrayList < linkList iterator 耗时 arrayList < linkList 两种结果一对比迭代的性能arrayList高于linkList ,同list 的迭代方法性能arrayList 的for>iterator, linkList的for<iterator linkList的for 迭代要慎用,它走的逻辑和前面的添加指定下标元素获删除指定下标元素逻辑一样,都是通过下标获取元素,而这一种方式都要循环一半的链表 来获取对应下标的元素,所以性能急剧下降 ArrayList 实现了RandomAccess 接口,这个接口是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的List中性能更加高效(在Collections二分查找时)。 就像它的注释一样,实现这个接口,采用for 迭代的效率是高于iterator 迭代的 来源: oschina 链接: https://my

数据分析 | 基于智能标签,精准管理数据

拟墨画扇 提交于 2020-08-17 04:11:44
本文源码: GitHub·点这里 || GitEE·点这里 一、场景分析 1、场景案例 互联网行业的朋友一定了解或者听说过下列几个场景: 阿里 :千人千面,意思不同用户使用阿里相关的产品感觉是不一样的,例如支付宝首页的推荐内容,和其他相关推荐流信息是完全不同的。 腾讯 :社交广告,不同用户的朋友圈或者其他媒体场景下的广告信息是不同的,会基于用户特征推荐。 头条 :信息价值,根据用户浏览信息,分析用户相关喜好,针对分析结果推荐相关的信息流,越关注某类内容,获取相关的信息越多。 如上几种场景的逻辑就是:基于不断分析用户的行为,生成用户的特征画像,然后再基于用户标签,定制化的推荐相关内容。 2、基本概念 通过上面的场景,衍生出来两个概念: 用户画像 用户画像,作为一种勾画目标用户、联系用户诉求与设计方向的有效工具,把该用户相关联的数据的可视化的展现,就形成了用户画像。用户画像在各领域得到了广泛的应用,最初是在电商领域得到应用的,在大数据时代背景下,用户信息充斥在网络中,将用户的每个具体信息抽象成标签,利用这些标签将用户形象具体化,从而为用户提供有针对性的服务。 标签数据 标签在生活中非常常见,比如商品标签,个人标签,行业标签,例如提到996就想到程序员,提到程序员就想到格子衫。 标签是把分散的多方数据进行整合纳入统一的技术平台,并对这些数据进行标准化和细分,进行结构化存储和更新管理

SpringBoot2 整合MinIO中间件,实现文件便捷管理

北慕城南 提交于 2020-08-17 03:39:31
本文源码: GitHub·点这里 || GitEE·点这里 一、MinIO简介 1、基础描述 MinIO是一个开源的对象存储服务。适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 2、存储机制 MinIO使用按对象的嵌入式擦除编码保护数据,该编码以汇编代码编写,可提供最高的性能。MinIO使用Reed-Solomon代码将对象划分为n/2个数据和n / 2个奇偶校验块-尽管可以将它们配置为任何所需的冗余级别。 这意味着在12个驱动器设置中,将一个对象分片为6个数据和6个奇偶校验块。即使丢失了多达5个((n/2)–1)个驱动器(无论是奇偶校验还是数据),仍然可以从其余驱动器可靠地重建数据。MinIO的实现可确保即使丢失或无法使用多个设备,也可以读取对象或写入新对象。最后,MinIO的擦除代码位于对象级别,并且可以一次修复一个对象。 二、MinIO环境搭建 1、安装包下载 https://dl.min.io/server/minio/release/linux-amd64/minio 建议使用某雷下载,速度会快点,下载包上传到 /opt/minioconfig/run 目录下。

Newbe.Claptrap 框架中为什么用 Claptrap 和 Minion 两个词?

£可爱£侵袭症+ 提交于 2020-08-17 03:31:46
Newbe.Claptrap 框架中为什么用 Claptrap 和 Minion 两个词?最近整理了一下项目的术语表。今天就谈谈为什么起了 Claptrap 和 Minion 两个名字。 Claptrap 简单来说 Claptrap = Actor + 事件溯源 Claptrap 是本框架定义的一种特殊 Actor。除了上文中提到 Actor 两种特性之外,Claptrap 还被定义为具有以下特性: 状态由事件进行控制。Actor 的状态在 Actor 内部进行维护。Claptrap 同样也是如此,不过改变 Claptrap 的状态除了在 Actor 之外,还限定其只能通过事件进行改变。这就将事件溯源模式与 Actor 模式进行了结合。通过事件溯源模式保证了 Actor 状态的正确性和可追溯性。这些改变 Claptrap 状态的事件是由 Claptrap 自身产生的。事件产生的原因可以是外部的调用也可以是 Claptrap 内部的类触发器机制产生的。 Claptrap 是 newbe36524 曾经玩过的一款老游戏中的经典角色。 点击此处了解 Minon Minion 是本框架定义的一种特殊 Claptrap 。是在 Claptrap 基础上做出的调整。其具备以下特性: 从对应的 Claptrap 读取事件。与 Claptrap 相同,Minion 的状态也由事件进行控制。不同的是

Qt开源作品16-通用无边框拖动拉伸

和自甴很熟 提交于 2020-08-16 20:23:11
一、前言 相信各位CS结构开发的程序员,多多少少都遇到过需要美化界面的事情,一般都不会采用系统的标题栏,这样就需要无边框标题栏窗体,默认的话无边框的标题栏都不支持拉伸和拖动的,毕竟去掉了标题栏则意味着失去了系统的窗体的属性,拉伸和拖动都需要自己写代码去实现,网上有很多类似的开源的方案,我也看过不少,总体来说复杂了些,对于初学者来说有可能看的云里雾里的,比如边框四周八个方位都可以自由拉伸这块,我的思路是针对设定的八个方位的区域进行识别鼠标是否按下,按下的哪个部位则执行什么拉伸策略,鼠标移到哪个位置则对应改变鼠标指针形状,更浅显易懂一些,至于拖动移动,还可以设置拖动的标题栏的高度等。 主要功能: 可以指定需要无边框的widget 边框四周八个方位都可以自由拉伸 可设置对应位置的边距,以便识别更大区域 可设置是否允许拖动 可设置是否允许拉伸 二、代码思路 bool FramelessWidget::eventFilter(QObject *watched, QEvent *event) { if (widget != 0 && watched == widget) { if (event->type() == QEvent::Resize) { //重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内 int width = widget->width();

20183215 实验三《Python程序设计》实验报告

╄→гoц情女王★ 提交于 2020-08-16 14:24:04
20183215 2019-2020-2 《Python程序设计》实验三报告 课程:《Python程序设计》 班级: 1832 姓名: 董振龙 学号: 20183215 实验教师:王志强 实验日期:2020年5月16日 必修/选修:公选课 1.实验内容 1.创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序; 2.要求包含文件的基本操作,例如打开和读写操作。 3.要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。 4.程序代码托管到码云。 2. 实验过程及结果 实验开始之前,我设想了一下实验结束后的效果,总觉得光秃秃的控制台缺乏美感(尽管是pycharm),于是,我打算加入GUI图形界面,既然追求美感,就贯彻到底咯。 首先,我打开了一个软件: wxFormBuilder (这里我参考了一个 大佬的博客 ),打开后的界面是这样的: 我们先选择Forms点击Frame,然后再建立几个boxsizer,加入一些必备控件textctrl、button,如图,其中,设置bsizer5的proportion为9,使其看上去更加和谐 最后进行一些细节上的设置,例如按钮名称以及事件绑定。最终效果如图: 其中三个按钮分别绑定事件: 保存之后可以导出对应的 .py文件 ,基本重复上述操作,可以得到客户端的图形界面和对应的 .py文件

别人家的java语言编写的自动化测试系统

萝らか妹 提交于 2020-08-16 14:14:48
https://gitee.com/testdevops/easyrest 但是我还不会用 ~~~~(>_<)~~~~ 目前的状况是:大概知道流程了,可是第一个用例就跑步起来 自己想写一些防范,比如写个Controller,添加一些页面,然后去运行指定目录下的excel【作为数据驱动】中的用例 可总是遇到问题,目前主要两个问题, 第一说我test ignored 第二,空指针异常 第三,ExecuteData 是ExecuteData对象,但是我从excel中取出的数据都是Object类型,而且强转失败。 我会看懂的,嗯嗯=========================== ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- REST Assured 来源: oschina 链接: https://my.oschina.net/u/4256877/blog/4497630

lua探索之路(1)

不问归期 提交于 2020-08-16 12:42:39
又开始了lua的探索,记不清是什么原因让我开始这次探索的。客观存在的条件是:目前网上lua的资料和前几年比更加丰富了。 我的目标是用lua在单片机上独立编程,包括操作一些接口。 我曾经问过一个写os的大牛,你是怎么写出来os的?他说:“也不难,多深入搞点项目就拉通了”。然后他提到:他写这个os之前阅读过别的os源码。 那么我搞这个lua也要参考一些lua源码了,包括: elua(官网) https://github.com/elua nodemcu官网 https://github.com/nodemcu luat官网 https://github.com/openLuat/LuatOS https://gitee.com/wendal/LuatOS (某网友)https://www.cnblogs.com/yangfengwu/tag/ESP8266/ (某网友)https://blog.csdn.net/dianzishi123/category_8030801.html elua里面有个shell。 来源: oschina 链接: https://my.oschina.net/u/4411210/blog/4464200

《机器学习实战》笔记(03):决策树

半世苍凉 提交于 2020-08-16 10:49:21
决策树 kNN算法可以完成很多分类任务,但是它最大的缺点就是给出数据的内在含义,决策树的主要优势就在于数据形式非常容易理解 决策树的构造 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。 缺点:可能会产生过度匹配问题。 适用数据类型:数值型和标称型。 创建分支的伪代码函数createBranch() Check if every item in the dataset is in the same class: If so return the class label Else find the best feature to split the data split the dataset create a branch node for each split call createBranch() and add the result to the branch node return branch node 示例数据 海洋生物数据 不浮出水面是否可以生存 是否有脚蹼 属于鱼类 是 是 是 是 是 是 是 否 否 否 是 否 否 是 否 信息增益 Information gain 划分数据集的大原则是:将无序的数据变得更加有序。 组织杂乱无章数据的一种方法就是使用 信息论 度量信息。 在划分数据集之前之后信息发生的变化称为 信息增益 .

dotnet serve 一句话开启文件服务器 通过 HTTP 将文件共享给其他设备

巧了我就是萌 提交于 2020-08-16 07:19:29
在当前的 IT 领域,我推荐每个开发设备都应该安装 dotnet 这个工具,在 dotnet 这个工具上有大量开发者提供了无数好用的工具。本文要告诉小伙伴的工具是 natemcmaster 大佬提供了 serve 工具,可以用来开启本地文件服务器,使用非常简单。这个方案适合在 Windows 系统和 Linux 系统和 MAC 上使用,发布的 HTTP 服务可以在任何能访问到的设备上使用 默认小伙伴电脑已经安装了 dotnet 工具,如果还没有安装,请到 官网 下载安装 首次使用需要安装,请打开 cmd 控制台输入下面代码安装 dotnet tool install --global dotnet-serve 安装完成之后通过 cmd 控制台进入到需要发布共享的文件夹里面,如我需要发布 F:\lindexi\foo.txt 这个资源到我的笔记本 ubuntu 系统,我先进入到 F:\lindexi 文件夹 cd /d F:\lindexi 然后就是一句话开启文件服务器了 dotnet serve -p 1007 默认会使用 8080 端口,上面代码的 -p 就是指定端口为 1007 如果接受默认端口,那么可以使用 dotnet serve 开启服务器 此时用浏览器访问 http://127.0.0.1:1007 就可以看到文件了 等等,我还有个问题,我不想用 8080 端口