我们的项目是一个独立的课堂教学辅助系统,致力于解决大学课堂教学效率低、师生课堂教学互动性弱的实际问题系统主体分为两个相互关联的软件E课PC端的用户是大学教师,E课APP是Android端软件,为学生服务。
“E课”软件PC端的用户是大学教师根据教学需要,教师需要调查学生的出勤情况,了解学生在课堂上的实时学习情况,并显示相关教材“E课”APP的用户是学生,学生在适当的时间使用手机软件与老师互动,提高课堂效率和课堂互动性。
“E课”是一个独立的软件,所有内容都包含在内在“E课”智能手机应用中,教师可以通过个人邮箱和密码登录系统,学生可以通过学号和加密码登录系统从数据库中读取显示页面所需的所有数据,并以APP界面或网页的形式列在页面上供用户浏览。
“E课”可实现课表查询,扫描二维码即时签到,课程测试,“我要当学霸”、在线课程中心等主要功能,以及绩点查询、绩效查询等辅助功能,通过新媒体辅助教学提高课堂效率系统架构图如下:学生用户的主要功能包括:增加课程、登录、课堂测试、文件下载、课堂笔记、个人登录记录等核心功能,以及大学新闻公告展示推送、学生日程自动导入展示、个人信息、成绩查询等辅助功能。
PC功能概述图如下:
二、遇到的挑战在测试和小规模用户使用过程中,发现OOM存在 的问题 OOM,全称“Out Of Memory",翻译成中文就是“内存用完了”,即会抛出java.lang.OutofmemoryEror异常。
看官方说明: Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.也就是说,当JVM没有足够的内存为对象分配空间,垃圾回收器也没有回收空间时,就会抛出这个error(注:非exception,因为这个问题太严重了,不足以应用)。
第三,解决问题的步骤首先,我们先调查问题,因为OOM的可能性和原因很多但有两个基本原因一是分配较少:例如,虚拟机本身可以使用的内存太少(启动时通常由VM参数指定);另一个原因是应用程序太多,使用后没有释放,这是浪费。
此时会导致内存泄漏或内存溢出(内存泄露:申请使用的内存未释放,导致虚拟机无法再次使用内存此时,由于申请人不使用内存,虚拟机无法将内存泄露给他人内存溢出:申请的内存超过JVM可以提供的内存大小,此时称为溢出。
)常用工具包括:1)mat: eclipse memory analyzer,基于eclipse RCP内存分析工具2)jhat:Java heap analyze tool,堆中的对象可以html的形式显示,包括对象的数量、大小等,并支持对象查询语言oQL。
在分析了相关的应用程序后,您可以访问分析结果不建议使用,因为在实际调查过程中,一般先在生产环境中使用 dump发送文件,然后将其拉到自己的开发机器上进行分析因此,最好使用先进的分析工具,如以前的mat经过几轮测试和调查,首先发现是-Xmx 参数太低,部分问题解决后,发现数据库查询逻辑问题,一次性查询数据库结果,无结果数量限制,所以当测试数据库信息过大时,OOM问题,试图从逻辑层面优化数据库查询机制,从而减少OOM问题的发生。
由于软件隐藏的可能性问题的发现加强了我们的监控和维护意识,毕竟,测试只能解决一些非常明显的问题,但在实际的在线过程中,突然爆发的问题可能是毁灭性的,所以我们决定改进监控系统只有这样,我们才能更好地为用户服务,尽快发现问题,解决适应性、用户体验、流量使用、稳定性等问题。
我们研究了几个常用的用户反馈平台1)基于HTML5开发,只需在IOS/Android支持H5的浏览器中打开即可,无需安装任何软件程序、代码植入,一步到位,简化沟通流程2) Udesk:支持Android、IOS和APIcloud三大平台可以对用户反馈的数据进行统计分析,并显示结果。
3) Freshdesk,致力于中小企业网站在线客户服务技术支持的网站,为中小企业网站提供在线服务质量和用户体验在调查过程中,我们偶然接触到了友盟 应用性能监控平台 U-APM,U-APM应用性能监控平台提供实时、可靠、全面的应用崩溃,ANR、自定义异常捕获能力,支持多场景、多通道智能报警监控,有效恢复崩溃用户的访问路径和业务现场,缩短故障排除时间。
它提供了一个完整的闭环,从发现问题-恢复问题-解决问题-验收完美满足我们的需求和期望项目总结我们的项目最终定位为“适应普通大学课堂教学的教学辅助软件”,旨在提高大学课堂效率和教学互动性,在功能层面尽可能简洁,在发展层面尽可能统一规范。
PC端和Android端都符合MVC软件设计模式,可移植性好,模块间高度解耦,适应各种类型的再开发然而,在APP测试过程中出现了OOM问题,因此我们通过提高-XMX参数、修改数据库查询逻辑、优化代码结构、改进监控系统来解决和优化问题,改进监控系统为未来可能出现的问题提供了双重保障。
来源:德斯软件资讯