APP下载

基于JsPsych的在线心理学实验平台开发

2022-11-28姚凯许晨晨梁振

中国医疗设备 2022年11期
关键词:占用率内存心理学

姚凯,许晨晨,梁振

安徽医科大学 生物医学工程学院,安徽 合肥 230032

引言

心理学作为一门实验科学,许多理论和成果从实验中得出,大量的心理学现象通过实验也可以得到揭示和佐证。目前心理学实验的开展主要依托于高校和研究机构,但是不同高校和研究机构间的心理学实验室建设并不均衡,导致实验质量和水平参差不齐,从而影响实验的顺利开展[1]。究其建设不均衡的原因要素,除人员因素外,实验软件自身存在的问题也制约着心理学的发展,主要问题有:① 目前实验软件多为本地客户端或客户端/服务器(Client/Server,C/S)架构,绝大部分功能集成在客户端,因此对系统资源的占用量也较高,这些要求还随着实验软件的迭代更新持续增加,配置不高的计算机被淘汰的风险较大,而高配置的计算机往往伴随着高额的购置费用,这对经费支出不充足的研究机构来说有一定挑战;② 部分软件将编程作为实验的主要设计方式,实验人员在设计实验前需要先学习对应的编程语言,这给没有编程经验的实验人员增加了额外的学习成本;③ 大多数实验软件不直接提供在线实验的功能,需要实验人员自己搭建服务器来开展线上实验。一方面,本地实验需要实验人员和被试约定好实验的时间和地点,这使得时间规划不一致或地理位置相距较远的人员间的协调难以开展;另一方面,自行搭建服务器也对没有学习过运维知识的实验人员增加了新的门槛。

JsPsych是基于JavaScript编写的一种用于在线实验的函数库,该库通过浏览器来模拟实验刺激,模块化程度高,可拓展性强,支持音频、视频、图片和文字等多种形式的实验刺激[2-3]。但是,使用JsPsych需要实验人员掌握JavaScript基础并会使用开发工具进行编程,同时该库也不提供在线部署实验和数据持久化的服务,需要实验人员自行搭建服务器或者交由Amazon Mechanical Turk等平台托管实验[4],在一定程度上增加了没有编程和运维经验的实验人员开展实验的难度。

因此,本文设计和开发一款基于JsPsych的在线心理学实验平台(下文简称:在线实验平台),将JsPsych的功能封装成实验人员更容易接受的图形化页面(Graphical User Interface,GUI),同时将平台部署于云服务器以提供部署线上实验和数据云存储的功能,实验人员和被试在联网状态下通过浏览器接入平台即可完成相关操作。

1 原理与方法

1.1 功能架构

在线实验平台将用户分为3类:管理员、实验人员和被试。实验人员通过GUI在线设计和调试实验,调试完成后上传伦理审查表和知情同意书等必要材料,待管理员审核通过后获得线上实验链接。被试通过实验链接即可进入在线实验平台,签署知情同意书后进入实验并按照要求完成实验,实验结束后一键上传实验数据。实验人员可随时通过平台查看或导出实验数据以做进一步分析,功能架构如图1所示。

图1 功能架构图

1.2 技术架构

在线实验平台采用前后端分离技术开发,结合B/S架构将系统分成浏览器、前端服务器与后端服务器3部分,技术架构如图2所示。前后端分离架构通过RESTful接口规范进行数据交互,有效解决了传统软件开发模式中的前后端代码高度耦合问题,提升了开发效率并且降低了开发成本[5-6]。平台以浏览器为运行载体,支持Chrome、Edge、Firefox和Safari等主流浏览器。前端使用Vue作为基础框架,采用Element UI来加速页面构建,引入JsPsych、Vue I18n、ECharts、XLSX和SignaturePad等组件来分别实现在线实验、国际化、数据可视化与导出和电子签名等功能[7]。后端将Springboot作为基础框架,引入Spring Security和Json Web Token技术来保证数据接入的安全性,使用关系型数据库MySQL实现数据持久化存储,将键值对型数据库Redis作为缓存数据库来提升数据查询效率[8-12]。前后端服务器部署于腾讯云,使用Docker和Jenkins实现持续集成与部署[13]。

图2 技术架构图

1.3 核心功能原理

平台以在线设计和运行实验作为核心功能,将Vue、Element UI和JsPsych结合来构建GUI,原理如图3所示。将样式结构与实验结构分离,在Vuex中使用2个对象来分别存储。当用户通过GUI修改了实验参数后,触发样式控制模块获取Vuex中的Operation对象并调用函数进行处理,将更新后的Operation对象一方面重新存入Vuex,另一方面传递给实验控制模块进行解析,实验控制模块根据传入的对象调用解析函数,将Operation对象转换为JsPsych能够识别的JavaScript对象并存入Vuex。借助Vue的数据绑定特性,GUI的参数设置区和实验展示区也会相应地动态变化。

图3 核心功能原理图

2 结果与测试

在线实验平台初步实现后,为验证平台可以有效开展实验并且占用更少的系统资源,依托我校智慧医学实验室,实验人员分别使用在线实验平台和本领域常用的实验软件Psychtoolbox、PsychoPy与OpenSesame设计心理学实验[14],实验选型为关联性错误记忆实验。在占用系统资源较高的实验运行阶段,使用性能监视器Perfmon对4款软件的CPU占用率和内存使用量进行监测,每组抽取5个样本。随后,将OpenSesame的实验文件导入实验人员自行搭建的托管服务器并部署线上实验,招募15名被试,分别通过在线实验平台和托管服务器提供的网络链接进行在线实验。

2.1 实验范式

关联性错误记忆实验,基于Deese-Roediger-McDermott(DRM)范式[15],实验范式如图4所示。在学习阶段,屏幕上依次出现10组词表,每组10个词,每个词的持续时间为2 s,间隔0 s,被试被告知尽可能记住每个词。随后进入测验阶段,屏幕上依次出现10组词表,每组6个词,第1个为学习阶段各词组的关键诱饵词(不在学习阶段出现),第2、3、4个为出现过的词,第5和第6个为未学习过的无关词。被试如果认为自己在学习阶段见过屏幕上的词,按下F键,否则按下J键。选取错误再认率和关键诱饵词占比作为实验主要指标,前者计算方式为错误再认例数(应该按下J的时候按下了F)除以无关词数(本实验为30例),后者为关键诱饵词在错误再认例数中的占比。

图4 关联性错误记忆实验范式图

2.2 实验材料与方法

实验开始前,实验人员在计算机上分别安装好4款软件及各自的运行环境,计算机和软件的主要配置信息如表1所示。实验设计完成后(图5a),向平台提交审核,管理员审核通过并批准上线(图5b)。实验人员将实验的网络链接发送给被试(图5c),被试在确认邀请信息无误并对知情同意书无异议后电子签名(图5d),点击“开始实验”按钮进行线上实验(图5e),结束后一键上传实验数据。实验人员可随时通过平台查看实验数据,或导出实验数据做进一步分析(图5f)。

图5 平台效果图

表1 计算机及实验软件的主要配置信息

2.3 实验结果

4款软件的资源占用情况以堆积面积图的形式展示如图6所示。子图中的绿色区域为内存使用量,单位为byte,红色区域为CPU占用率,单位为%,横坐标为监测时间,纵坐标为各指标的计数值,单位与对应指标的单位一致。为方便展示,CPU占用率的展示比例(纵坐标/实际值)为10,内存使用量的展示比例为0.0000001。

图6 4款软件在实验运行阶段的CPU占用率和内存使用量情况

采用SPSS 26.0对实验数据和性能数据的主要指标进行统计学分析,计量资料采用±s描述,将在线实验平台与另外3款软件的性能数据和OpenSesame的实验数据分别进行对比,对不满足正态分布的错误再认率使用Mann-Whitney U检验,对满足正态分布的CPU占用率、内存使用量和关键诱饵词占比使用独立样本的t检验,以P<0.05为差异有统计学意义。结果如表2所示,在线实验平台与OpenSesame的错误再认率和关键诱饵词占比比较,差异无统计学意义(P>0.05),在线实验平台CPU占用率和内存使用量显著低于OpenSesame,差异有统计学意义(P<0.05)。在线实验平台较其他3款软件对CPU和内存资源的消耗显著减少,与OpenSesame收集的实验数据无显著差异。

表2 在线实验平台与其他3款软件的数据比较

使用JMeter对在线实验平台的主要接口进行压力测试,线程数为100,以在线创建和运行实验为测试基线,接口包括保存实验、查询实验、提交实验数据和删除实验,响应时间如图7所示。结果表明,测试开始后,100名模拟用户相互独立地进行这4项操作,除少部分保存实验的响应时间在2.5 s左右,其他操作的响应时间均在2 s以内。依据响应时间的2-5-8评判原则,当响应时间小于2 s时,用户会认为响应速度快且体验感好[16]。可以得出,系统的关键接口响应速度快,能够满足百人以内规模的同时在线实验。

图7 在线实验平台主要接口响应时间图

3 讨论

为了给心理学实验的开展提供便利,本研究基于JsPsych开发了在线实验平台。依据研究人员将CPU占用率和内存使用量作为软件对系统资源占用情况的主要指标,将响应时间作为软件性能评估的重要指标[17-18],使用Perfmon对在线实验平台和本领域常用软件在实验运行阶段的CPU占用率和内存使用量进行监测,使用JMeter对在线实验平台的主要接口进行压力测试。结果表明,在线实验平台对系统资源的消耗显著降低,响应时间满足百人以内规模的同时在线实验。最后,将在线实验平台和OpenSesame就开展关联性错误记忆实验进行对比,结果表明,两个软件的实验数据无显著差异,且关键诱饵词占比均较高,与研究人员提出的关键诱饵词更容易引发虚假记忆的结论一致[15]。

为了规范心理学实验的开展,研究人员开始用计算机软件来模拟实验刺激,Brainard[19]基于Matlab开发出了 Psychtoolbox,Forster等[20]基 于 DirectX 开 发 出 了DMDX,实验人员通过编写代码来设计实验。为了进一步降低实验设计和开展的门槛,研究人员用GUI取代代码编程为主的实验设计方式,同时支持在线实验的开展模式。Mathôt等[21]和Peirce等[22]基于Python分别开发出了客户端软件OpenSesame和PsychoPy,两者均提供GUI以降低设计实验所需的编程门槛,但是不直接提供后端支持,实验人员需要将实验文件导出并交由第三方平台托管和开展实验。Peirce等[22]同时指出软件具有迭代更新的特点,不同版本间可能存在不兼容的问题,需要实验人员自行保证版本的一致性。此外还有一些商业软件如E-Prime和Experiment Builder也提供类似的功能,但是订购产生的费用也相对较高。

相较于上述方案,本文开发的在线实验平台具有操作方便和低成本的特点,主要体现在以下3个方面:① 平台采用B/S架构,相较于C/S架构具有维护方便和成本更低的优势[23]。浏览器相较客户端对硬件的配置要求更低,且适用范围更广,如DMDX只支持Windows操作系统,但是在线实验平台可运行在Windows、MacOS和Linux等不同系列的操作系统上。同时,由于在线实验平台通过网络向服务器请求资源,软件的迭代更新由平台运维人员在服务器上完成,因此用户不必考虑软件迭代更新造成的版本不一致等问题。② 平台整合Vue、JsPsych和Element UI来构建GUI,Element UI基于Vue开发而成,Vue和JsPsych均遵循ECMAScript标准,整合后的GUI具有稳定、简洁和美观的特点,既降低了非编程专业人员设计实验的门槛,也便于后续的功能拓展。③ 平台提供后端支持,为用户提供线上部署实验和数据云存储等服务。用户在平台上可以完成从设计实验、开展实验到数据收集的一整套流程,省去了自行搭建服务器或导出文件再上传至第三方托管平台的额外步骤。

虽然在线实验平台为心理学实验的开展提供了便利,但是对于一些反应时精度要求很高的实验来说要谨慎使用。研究人员测得JsPsych的时序精度在100 ms量级[24],de Leeuw[2]也提到尽管在JsPsych中测量响应时间较为精确,但是对于精度要求很高的实验来说仍然存在局限性。

4 结论

本文开发的在线实验平台基于JsPsych函数库,以前后端分离的开发思想和B/S模式为指导,根据实际需求设计功能和技术架构。通过与同类实验软件进行实验设计对比,证明该平台能够达到相似的实验开展效果,同时占用更少的系统资源并提供云服务支持,进一步降低了开展心理学实验的门槛。后续研究团队还会在时序精度、数据加密、高并发等方面继续深入研究,不断挖掘在线实验的优点,为心理学实验的开展提供更多的便利。

猜你喜欢

占用率内存心理学
1090 MHz信道分析软件设计与实现
适当提高“两金”占用率助人助己
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
降低CE设备子接口占用率的研究与应用
基于云计算的虚拟机在线迁移算法
内存搭配DDR4、DDR3L还是DDR3?
上网本为什么只有1GB?