【近取 Key】Alpha - v1.0 测试报告
Bug
前端
主页、登录、注册、导航
bug说明 | 修复方法 | 修复结果 |
---|---|---|
导航栏有时不显示用户姓名 | 修改用户信息的获取逻辑与存储方式 | 成功 |
展示词图界面导航栏居右失败 | 在组件中增加自适应相关设置 | 成功 |
用户名不符合限制却能成功注册 | 修复表单有效性检查的错误逻辑 | 成功 |
表单输入不符合限制时,可以使用回车发送表单 | 在回车事件绑定的方法中增加有效性检查 | 成功 |
密码符合要求后重复输入为空即可注册 | 修复了表单检查规则,使其初值不再为 undefined | 成功 |
页面刷新后词图名称丢失 | 监听页面 unload 事件,用 localstorage 存储词图名 | 成功 |
教程 gif 出现闪烁 | 调整 gif 在页面中的大小,使其不再需要放大 | 成功 |
主页导航栏明暗主题不能随滚动切换 | 修改获取页面滚动高度的方式 | 成功 |
用户中心
bug说明 | 修复方法 | 修复结果 |
---|---|---|
“所有词图”文件夹不唯一 | 测试与后端链接情况并进行错误处理 | 成功 |
名称为空的词图预览与其他不一致 | 增加词图名称限制,不可为空 | 成功 |
页面刷新后侧边栏始终聚焦在第一行 | 修改导航栏 list 的书写方式,使用 to 属性绑定 | 成功 |
统计信息界面单词排序逻辑错误 | 修改表单计算方法进行正确排序 | 成功 |
我的词图界面全选删除后部分词图依然存在 | 修复全选操作的影响范围 | 成功 |
文件夹重名后建立正确文件夹依然报错 | 修改错误信息条传值逻辑 | 成功 |
修改密码后跳转到登录界面却仍然存在登陆状态 | 跳转前补充清空 localstorage 等 token 信息 | 成功 |
修改密码时新密码不符合要求也可以提交 | 设置表单监听各表单项的检查 | 成功 |
修改密码时没有重复输入新密码也可以提交 | 取消表单的懒检查特性,进行持续检查 | 成功 |
词图相关
bug说明 | 修复方法 | 修复结果 |
---|---|---|
单词浮窗内容过长而超出卡片边界 | 将卡片 width 固定,height 自适应延申 | 成功 |
单词侧边栏单词长度超长后换行 | 设置断点,当单词长度达到阈值后缩小字号 | 成功 |
单词侧边栏显示释义无换行 | 通过替换换行符+使用插槽渲染 html 实现换行 | 成功 |
新建词图后出现 404 无法获取预览图 | 后端预存默认 svg 供新词图使用 | 成功 |
单词加入词图后不移动则无法加入 | 添加在用户加入词图后即发送单词位置请求 | 成功 |
下划线、删除线等设置失败 | 将设置逻辑由取反改为传值 | 成功 |
词图 zoom 后单词浮窗位置野蜂飞舞 | 通过获取当前 zoom 参数计算单词相对位置并设置浮窗位置 | 成功 |
show 界面无法显示词图名称 | 通过 API 通信获取当前路由 id 的词图名称并进行显示 | 成功 |
复习模式最后一个单词无法查看详解 | 设置复习到最后一个单词时仍然显示查看详解 | 成功 |
模式最后一个单词查看详解后浮窗无法消失 | 点击完成后自动收起当前单词浮窗 | 成功 |
同一单词重复加入词图 | 加入词图后设置加入按钮为 disabled 状态防止重复加入 | 成功 |
单词浮窗中翻译没有渲染出换行效果 | 添加替换换行符+使用插槽渲染 html 实现换行 | 成功 |
待解决问题:
bug说明 | 修复方法 | 修复结果 |
---|---|---|
首页侧边栏首次进入不会讲右侧顶向右侧自适应,之后可以 | 暂无 | 待修复 |
后端
bug 概述 | 修复过程 | 修复结果 |
---|---|---|
API post 使用 body 传参,而后端使用的是 request.POST.get('xxx') | 改为先解析 body 再进行取值 | 前后端正常通信 |
解析用户名调用函数时,错把 username 误认为是 user_id,导致参数传错 | 对于 username user 进行明确区分和定义 | 能够正常的解析 user |
前端暂没有实现词图描述功能,导致系统错误 | 允许描述为空,更新数据库和 API 调用方法 | 前后端正常通信 |
获取推荐词表时出现错误 | 明确定义生成模式、数据类型、返回的是 id 还是 name;明确产生集合和计算集合 | 能够正常生成合理的推荐词表 |
给用户的 token 可能超时 | 添加 refresh_token | 正常刷新 |
get post 在同一个 url 上,但解析时没有区分开 | 合并为 wrapped_api,分别处理 | 能够正常处理 API |
get 不存在 body,而是使用参数传递 | 将 body 转为参数处理 | 能够正常处理 get |
owner、user 命名不统一导致各处不一致 | 严格按照数据库定义进行处理 | 能够正常区分 |
filter().first()、get() 对于报错、update 行为不同 | 需要不存在报错或确定存在时,可使用 get;其他时候使用 filter.first 并进行判断 2;update 视情况改为修改参数后 save() | 行为正确 |
在获得列属性时,直接 values_list() 返回的是元组而不是单个值 | 添加处理 values_list(xx, flat=True);在获得多列时不能通过属性而要通过下标获得 | 能够正确返回单个值 |
删除词图时,需要先移动到回收站,如果词图在回收站里才彻底删除 | 加入特判 | 选中词图如果部分在回收站,则只删除该部分,其余进入回收站 |
django 自动存储的时间和前端显示时间不同 | 进行 .strftime 处理 | 前端显示为 %Y-%m-%d %H:%M |
时间为 UTC,和北京时间不同 | 返回给前端时进行 +8h 操作 2 | 前端显示正确值 |
错误处理时对于信息的传值类型定义有误 | 进行统一 | 正确进行错误处理 |
集合使用 remove 报错导致无法继续执行 | 使用 discard 除去可能不存在的实体 | 能够正确执行删除操作 |
生成的推荐词汇可能不在用户正在背的词书中 | 加入判断条件 2 | 生成的推荐词汇均在用户所想背的词书中 |
用户登录时可能输入用户名或者邮箱 | 分别进行查询,有一个即可登陆成功 | 输入用户名或邮箱均可登陆成功 |
当选择有序模式时,在某些情况可能生成的词表为无序 | 对于可能为无序的列表进行预排序 | 有序模式下所有情况返回的词表均为有序 |
词图对应单词状态的个数错误 | 添加遗忘的用户 id 限制 | 正确获取词图对应每种状态的单词数目 |
当用户复习单词数为 0 时,直接相除计算遗忘率会导致除 0 溢出 | 对分母为 0 的情况进行特判 | 行为正确 |
Django models 中存储时间为相对时间,datetime 默认时间为绝对时间,二者无法直接计算 | 先将相对时间转换为绝对时间后再进行计算 | 正确执行 |
用户创建一张新词图后直接退出,则新词图的缩略图为黑色 | 在用户发送词图创建请求时,即在后端构造一张默认词图 svg | 可正常显示词图预览 |
场景测试
用户信息 | 用户情况 |
---|---|
姓名 | 田旭尧 |
身份 | 可怜高中生,高考近在眼前 |
使用动机 | 高考英语单词必须得全部背过呀 |
典型场景 | 每周末在家抽出 3~4h 专门背单词 |
用户偏好 | 使用整块的时间系统化背单词,且对每个单词的掌握程度要求高 |
用户痛点 | 碎片化的背单词法不适用于一直坐着学习的高考党;纸质书籍笨重,没有交互;天天看书看得好累,要是有更 fashion 的学习方式换换脑子就好了 |
预期使用场景 | 每天有固定的时间使用该软件来背单词,通过设置词图中单词的个数激励自己每天的背词数量,并且根据统计信息界面的艾宾浩斯曲线来进行复习。 |
实现该用户需求的功能 | 1. 可以设置每个词图的单词数量上限,帮助用户达到每天的学习目标(痛点 1) 2. 统计信息界面对遗忘程度进行展示,时刻关注还未掌握的单词(痛点 2) 3. 复习模式帮助用户针对词图单位进行复习 |
用户信息 | 用户情况 |
---|---|
姓名 | 田昶禹 |
身份 | 某校考研党,英语单词量不高,需要大量提升 |
使用动机 | 想要在半年里把考研单词记熟,每天抽出一定时间专门背单词 |
典型场景1 | 复习数一数二腻了,背背单词学学英语换换脑子 |
典型场景2 | 突然被某篇鸡汤激励到,立誓背完考研单词,然后背了五分钟 |
用户偏好 | 偶尔会专门背记单词,主要时间不会用太多,但会用系统化的时间专门记忆单词 |
用户痛点 | 单词量较大,碎片化背单词过于低效;且容易注意力不集中、记忆不长久 |
预期使用场景 | 由于大学时间比较自由,因此需要依靠激励机制来鼓励自己每天进行背单词。获得激励之后,每天确定背词小目标并完成。 |
实现该用户需求的功能 | 1. 日历图展示打卡情况,激励用户每天进行单词学习(典型场景 2) 2. 我的词图界面可以预览每个词图的背诵进度条,激励用户消除红色、橙色的部分,让整个词图进度条都呈现美丽的绿色 |
用户信息 | 用户情况 |
---|---|
姓名 | 田永晓 |
身份 | 某校英语专业或出锅留学生 |
使用动机 | 有大量背单词的需求,常啃红宝书等词书,普通的碎片化记忆模式 APP 不适合了 |
典型场景1 | 某一天要背好多单词,不想背着一大摞书去图书馆,硬啃,普通的背单词软件过于碎片化,满足不了需求 |
典型场景2 | 看了个英文电影,想把电影里整理出来的单词加入候选背单词列表中 |
用户偏好 | 系统化背单词,即专门抽出时间阅读书籍、影视并记忆有关单词 |
用户痛点 | 纸质书籍重且较不方便、没有交互;大量学习中产生的零散单词除了手写记录难以集中背诵,且无法自定义位置;希望能提供基于词根词缀、近反义词的推荐背诵词 |
预期使用场景 | 对单词的专业性和难度有独特的要求,且由于背单词的重要性,需要使用特殊技巧来增强单词记忆。每天需要背单词的时间很长,觉得枯燥乏味难以集中精力。但是词图的多样化编辑功能可以让用户设计属于自己的词图,在背单词的过程中加入设计环节,帮助用户记忆的同时增加趣味性,让用户可以长时间背单词并减少疲劳感。 |
实现该用户需求的功能 | 1. 提供随机生成、顺序生成、词根词缀、近反义词等多种生成推荐词表方式,供用户建立词根词缀的概念及联想记忆(痛点 3) 2. 画布的 zoom 功能、可拖拽功能提供极大的操作空间(痛点 1、2) 3. 支持 9 种词书的选择(痛点 1) 4. 工具栏可以设置每个单词的样式 |
压力测试
对于所有 API 进行行为分析(具体分析表格请助教老师移步 gitlab 察看):
API | 最大长度(数量级) | 查询数据库次数 |
---|---|---|
词图中单词状态改变 | 301 | 5 |
SVG 上传 | 913 | 2 |
用户登入 | 74 | 1 |
查看所有词图 | 334 | 4 |
查看统计信息 | 2110 | 2 |
查看单词释义 | 537 | 1 |
在此,取较有代表性的 API,取一个较新的账户进行压力测试,测试结果如下:
API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
---|---|---|---|---|---|---|---|---|---|---|
查看单词释义 | 255 | 60s | 11055 | 100% | 186.46trans/s | 5.64M | 0.08s | 14.87 | 5.06s | 0.00s |
查看统计信息 | 255 | 60s | 1038 | 100% | 17.50trans/s | 12.08M | 0.85s | 14.88 | 3.95s | 0.09s |
可以看到,对于新用户,查询的效率和并发的支持较好。
但是对于一个数据量较大的老用户(背单词数在 500 数量级),进行压力测试:
API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
---|---|---|---|---|---|---|---|---|---|---|
查看统计信息 | 100 | 10s | 37 | 100% | 4.03trans/s | 1.56M | 5.04s | 20.32 | 8.9s | 0.00s |
查看统计信息 | 100 | 60s | 293 | 100% | 4.94trans/s | 12.38M | 16.77s | 82.92 | 22.61s | 1.31s |
查看统计信息 | 200 | 10s | 37 | 100% | 4.03trans/s | 1.56M | 5.63s | 22.71 | 9.04s | 0.00s |
查看统计信息 | 200 | 60s | 278 | 73.54% | 4.67trans/s | 11.75M | 23.06s | 107.78 | 30.50s | 1.69s |
查看统计信息 | 255 | 60s | 219 | 16.82% | 3.66trans/s | 9.42M | 23.51s | 85.94 | 49.08s | 4.29s |
查看所有词图 | 100 | 60s | 1562 | 100% | 26.07trans/s | 8.08M | 3.70s | 96.48 | 5.51s | 0.20s |
查看所有词图 | 200 | 60s | 1593 | 84.82% | 26.68trans/s | 8.29M | 6.27s | 167.18 | 29.70s | 0.21s |
查看所有词图 | 255 | 60s | 1659 | 22.40% | 20.37trans/s | 9.61M | 5.98s | 166.15 | 29.84s | 0.00s |
对于某一个 API,单位时间内能够完成的业务数是有限的。对于查看统计信息、查看所有词图两个与数据库交互较多,或计算过程较复杂的 API,我们无法支持过高的并发数:200 用户并发尚不会存在问题,但更多的用户则会造成大量请求因等待处理的 socket 队列满而被丢弃;同时,过多 Client 与 nginx 之间建立了连接。这一方面是后端处理数据时速度较慢,存在优化空间;另一方面是硬件设备条件限制;以及没有计算 nginx Client、并发队列和请求之间的数值关系。
在修改并发队列长度后进行测试,虽然总业务数增加了,但成功业务数没什么变化,因此成功率反而下降了:
API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
---|---|---|---|---|---|---|---|---|---|---|
查看所有词图 | 255 | 60s | 1666 | 16.28% | 27.84trans/s | 10.15M | 8.41s | 233.99 | 23.31s | 0.00s |
在此基础上,修改 Nginx 的最大连接数(768$\rightarrow$1024),成功率大幅增加:
API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
---|---|---|---|---|---|---|---|---|---|---|
查看统计信息(原) | 255 | 60s | 219 | 16.82% | 3.66trans/s | 9.42M | 23.51s | 85.94 | 49.08s | 4.29s |
查看所有词图(原) | 255 | 60s | 1659 | 22.40% | 20.37trans/s | 9.61M | 5.98s | 166.15 | 29.84s | 0.00s |
查看统计信息 | 255 | 60s | 155 | 38.27% | 2.59trans/s | 6.55M | 15.99s | 41.38 | 30.58s | 0.00s |
查看所有词图 | 255 | 60s | 1733 | 99.20% | 29.27trans/s | 8.97M | 8.04s | 235.42 | 10.47s | 0.00s |
其中,查看统计信息的压测报错 SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected)
以及 [alert] socket: xxx select timed out: Connection timed out
,暂未解决。
单元测试
由于本项目比较特殊,数据库为规模较大的预处理数据库,故仅进行了部分不依赖于词书、单词信息、近反义词、词根词缀等数据库的单元测试。
测试矩阵
功能性测试
浏览器 | 版本 | 登录注册 | 首页显示 | 分类处理 | 词图创建 | 词图复习 | 曲线计算 | 用户反馈 |
---|---|---|---|---|---|---|---|---|
Google Chrome | 90.0.4430.93 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Microsoft Edge | 90.0.818.56 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
360浏览器 | 13.0.2220.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 要开 js 功能 | 正常 |
Firefox | 88.0.1 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Safari(平板) | 604.1 | 正常 | 正常 | 正常 | 无法拖拽、更改大小 | 无法拖拽、更改大小 | 正常 | 正常 |
QQ浏览器(平板) | 11.4.8.4762 | 正常 | 正常 | 正常 | 无法拖拽、更改大小 | 无法拖拽、更改大小 | 正常 | 正常 |
UI和操作测试
浏览器 | 屏幕分辨率 | 基本功能 | 页面布局 | 操作流畅度 |
---|---|---|---|---|
Chrome 90.0.4430.93 | 1920*1080 | 正常 | 画布在100%显示时超出屏幕 | 比较流畅 |
Edge 90.0.818.56 | 1920*1080 | 正常 | 画布在100%显示时超出屏幕 | 流畅 |
Edge 90.0.818.56 | 2560*1440 | 正常 | 正常 | 流畅 |
Chrome 90.0.4430.93 | 2560*1440 | 正常 | 正常 | 流畅 |
Firefox 88.0.1 | 2560*1440 | 正常 | 正常 | 流畅 |
Firefox 83.0 | 1920*1080 | 正常 | 侧边栏弹出时右侧不会自适应;画布在100%显示时超出屏幕 | 比较不流畅 |
360安全浏览器 13.1.1302.0 | 1920*1080 | 正常 | 画布在100%显示时超出屏幕 | 较流畅 |
出口条件
前端
要求 | 完成情况 | 下一步 |
---|---|---|
整体 UI 美观 | 基本实现统一的 UI 风格,基本保证美观 | 进一步美化 UI 界面细节 |
教程清晰 | 在教程页面使用 gif 进行动态展示功能,相对完善 | 考虑新增用户首次进入编辑的指南 |
跳转逻辑合理 | 跳转按钮清晰,返回按钮逻辑明确 | 了解用户体验感受,适当修正逻辑 |
用户操作友好 | 多数操作按钮有提示或本身带有文字信息 | 收集用户反馈,对模糊的地方进行补充说明 |
进行部分要求审查 | 添加了对用户名、密码、词图单词数量、词图名称等基本限制的前端审查 | 收集用户反馈,对限制进行调整 |
各屏幕分遍率、放大缩小、分屏的兼容 | 对部分侧边栏和词图的大小进行了屏幕自适应,对导航栏进行了分屏位置切换 | 完善对屏幕的适应性,争取让适应更加流畅 |
后端
要求 | 完成情况 | 下一步 |
---|---|---|
数据库设计完备 | 能够支持前端询问,同时支持推荐算法的数据库设计 | 进一步根据 beta 要求设计数据库 |
进行权限处理 | 用户登录获得密钥,进而才可使用各种功能,保证数据安全性 | 完善权限处理系统 |
进行邮箱验证 | 用户需要通过邮箱验证才可使用软件,减少恶意用户 | 完善邮箱验证内容、跳转方法 |
单词数据 | 770570 个单词,覆盖面较广;其中 20651 个单词具有中英文例句 | 进一步完善释义的存储方式、例句的合理性检查 |
词书数据 | 导入了四级、六级、专业四八级、考研、雅思、托福、GRE、MBA、红宝书等词书 | 进一步根据用户需求寻找并导入更多的词书 |
近反义词等推荐算法 | 共有 5060 个单词可进行近反义词推荐;共有 9326 个单词可进行同词根词缀推荐;推荐算法自由选择 | 加入更多推荐算法;增加近反义词、词根词缀列表;显式列出对比或关联 |
综上,基本完成 Alpha 阶段的出口要求。
【近取 Key】Alpha - v1.0 测试报告的更多相关文章
- 【近取 Key】Alpha - v1.0 版本发布说明
功能与特性 Alpha 版本虽然为本软件的第一代版本,但已基本覆盖了用户个人使用时的主要功能.除登陆注册与后台管理外,下文将分版块详细介绍面向用户的主要功能特性. 『产品主页』 潜在应用场景 场景 0 ...
- 【近取 Key】Alpha - 项目展示
项目与团队亮点 一.团队成员与分工简介 成员组成与分工 本团队由 6 名成员组成,其中有 3 名 PM,2 名后端开发人员与 4 名前端开发人员,由于组内成员数量有限,因此所有 PM 均需同时兼领开发 ...
- 【近取 key】NABCD分析
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-NABCD分析 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作 ...
- 问渠那得清如许?为有源头活水来——对【近取Key】产品进行的深度测评与解析
在 Build To Show 的场景中,大家各显身手,用各种办法展现技术,的确很难在单一的维度上确定谁赢谁输.但是,在 Build To Win 的场景中,往往市场就是那么一块, 竞争对手占了 70 ...
- 【近取 key】技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...
- 【近取 key】功能规格说明书
目录 前置信息说明 概念介绍 记忆宫殿 A4纸背单词法 词图 单词掌握程度相关 用户和典型场景 系统功能设计 主页 词图相关功能 创建词图 查看词图 复习词图 个人控制台相关功能 我的词图 统计信息 ...
- 【Alpha】“北航社团帮”小程序v1.0测试报告
目录 测试计划.过程和结果 后端单元测试 后端压力测试 测试结果 指标解释 前端测试 授权登录与权限检查 功能测试 兼容性测试 性能测试 回答课程组问题 测试中发现的bug 场景测试 测试矩阵 出口条 ...
- 【近取 key】Alpha 阶段任务分配
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 alpha阶段初始任务分配 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉 ...
- 【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0
目录 测试计划.过程和结果 后端测试--单元测试与覆盖率 后端测试--压力测试 展示部分数据 平均数据 前端测试--小程序v2.0 授权登录与权限检查 新功能的测试 兼容性测试 性能测试 前端测试-- ...
随机推荐
- 归并排序(JAVA语言)
public class merge { public static void main(String[] args) { // TODO Auto-generated method stub int ...
- 【Django笔记0】-Django项目创建,settings设置,运行
Django项目创建,settings设置,运行 1,项目创建 通过pip下载Django以后,在cmd中cd到想要创建项目的路径,之后输入: django-admin startproject ...
- 图解双链表(Java实现)
原创公众号:bigsai 文章已收录在 全网都在关注的数据结构与算法学习仓库 前言 前面有很详细的讲过线性表(顺序表和链表),当时讲的链表以但链表为主,但实际上在实际应用中双链表的应用多一些就比如Li ...
- KubeEdge边缘自治设计原理
这一篇内容主要是KubeEdge中边缘节点组件EdgeCore的原理介绍. KubeEdge架构-EdgeCore 上图中深蓝色的都是kubeedg自己实现的组件,亮蓝色是k8s社区原生组件.这篇主要 ...
- 学习C#第二天
变量 变量是什么? 在数学中,我们对变量的概念有一定的了解和认识,如y=x^2,其中,x,y都是变量. 定义 一个变量就是存储区(内存)中的一个存储单元 变量的声明及初始化 使用变量的步骤 声明一个变 ...
- 【Azure Developer】Azure Graph SDK获取用户列表的问题: SDK中GraphServiceClient如何指向中国区的Endpoint:https://microsoftgraph.chinacloudapi.cn/v1.0
问题描述 想通过Java SDK的方式来获取Azure 门户中所列举的用户.一直报错无法正常调用接口,错误信息与AAD登录认证相关,提示tenant not found. 想要实现的目的,通过代码方式 ...
- 结对编程-stage_2
教学班 罗杰.任建班周五3.4节 gitlab项目地址 Here it is. 成员 周远航(3004) 李辰洋(3477) 结对编程体验 经过了上一阶段的磨合,第二阶段我们的配合更加流畅,也熟悉了对 ...
- Java基础 - List的两个子类的特点
List两个子类的特点 List的两个子类的特点 因为两个类都实现了List接口,所以里面的方法都差不多,那这两个类都有什么特点呢? ArrayList: 底层数据结构是数组,查询快,增删慢. Lin ...
- redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?(偏难)
1.RDB和AOF两种持久化机制的介绍 RDB持久化机制,对redis中的数据执行周期性的持久化 AOF机制对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的 ...
- Oracle-buffer cache过小导致SQL执行时间长
一.问题:客户反馈在生产库和测试库执行相同SQL,测试库执行比生产库慢一倍 问题摆在这里,需要进行分析? 啥??? 版本11.2.0.4,都是单实例,主机系统硬件配置差不多. 二.对比SQL的执行效率 ...