MEVCL

Portable Online Judge

一个高性能、分布式、易部署的开源 Online Judge 系统

LICENSE

本项目的所有代码均使用基于 GNU General Public License v3.0 开源协议开源,并附加下列条款。部分衍生项目采用 MIT License 开源,以目标仓库内的 LICENSE 文件与 README 说明为准

注明项目源以及所有开发者

此软件及其所有副本的源码、二次开发的软件及其所有副本的源码,上述所有源码内必须在其根目录的明显位置,注明其来源的源码地址、最初源码地址(即本组织下的仓库)、来源的源码的所有贡献者。

同时,在所有上述的源码的产生的发行版本、部署版本的程序的页面的明显位置,需要注明此发行版本的源码地址、最初源码地址(即本组织下的仓库)、发行版本的所有贡献者所有贡献者。

例如,若本项目的开发者为 A,而 B 通过复制本项目得到新的项目,并对其进行了修改,则 B 需要在新的项目下注明本项目的最初地址(即本项目)以及开发者 A 和 B。同时有 C 通过复制 B 的项目得到一个新的项目,C 没有修改其任何源码,而是使用此项目的源码进行商业活动,则 C 需要在新的项目下注明 B 的项目地址、本项目的最初地址、开发者 A 和 B,同时其商业活动的主页面上,应当注明 C 的项目地址、本项目的最初地址、开发者 A 和 B

什么是 Online Judge

  • 在线评测系统(英语:Online Judge,缩写OJ)是一种在算法竞赛竞赛中用来测试参赛程序的在线系统,也可以用于平时练习。近年来(2016年或更早)亦出现一些针对求职面试的在线评测系统。许多OJ网站会自发组织一些竞赛。此外,OJ网站通常会设立用户排名,以用户的提交答案通过数多少或某个题目执行时间快慢为排名依据。
  • 算法竞赛通常采取黑盒测试,事先准备好一些测试数据,然后用它们来测试选手的程序。
  • 在在线评测系统中,用户需要提交源代码至服务器,服务器会编译用户的源代码,然后执行源代码生成的可执行文件(或用解释方式执行,或直接执行脚本文件),得到其输出的结果,并与正确结果比较。
  • 为防止攻击和恶意提交,服务器必须采取一定的安全措施,例如对用户提交的源代码实施过滤、将进程放入沙盒以进行隔离、对代码进行哈希以防止抄袭和重复提交等。

——来自 wikipedia

什么是 Portable Online Judge

Portable 是一个高性能、分布式、易部署的开源 Online Judge 系统

  • 高性能:在传统意义上,服务的高性能通常指代服务的 QPS 或者 TPS,而 Online Judge 系统的最大性能瓶颈通常在运行用户提交的代码上。运行用户代码的沙盒环境的优劣,可以极大的影响服务性能。Portable OJ 提供的沙盒环境能够最大程度的减少对用户代码的运行效率影响,平均时间的影响小于 5%,这可以保证服务器能够更快的完成更多的评测任务,满足高性能需求
  • 分布式:Portable OJ 支持使用分布式判题系统,允许系统进行热添加以及关闭判题系统而不需要重启任何其他服务,所有的一切调度均由 Portable OJ 系统直接支持
  • 易部署:只需要拥有 Docker,一行命令即可快速启动整个系统,没有环境配置需要,也几乎不存在不同环境下操作不同。

results matching ""

    No results matching ""