Commit Graph

1933 Commits

Author SHA1 Message Date
virusdefender
61153fda06 测试 docker 运行 2015-08-02 10:49:31 +08:00
virusdefender
adaacb6086 增加coding演示配置文件 2015-08-02 10:18:19 +08:00
virusdefender
68e07d443f Accept Merge Request #3 : (virusdefender-dev -> dev)
Merge Request: virusdefender_dev -> dev
Created By: @virusdefender
Accepted By: @virusdefender
URL: https://coding.net/u/virusdefender/p/qduoj/git/merge/3
2015-08-02 10:10:31 +08:00
virusdefender
ac54be88b2 后台引入 bootstrap js 2015-08-02 10:00:54 +08:00
virusdefender
593690b340 前台模板模块化拆分 2015-08-02 09:59:13 +08:00
virusdefender
9a8c15ab80 将 admin 模块化拆分 2015-08-02 09:54:37 +08:00
virusdefender
8b058a3785 增加已经写好的 admin 的模板 2015-08-02 09:47:50 +08:00
virusdefender
64f31a61be 移动两个 css 的位置 2015-08-02 09:47:15 +08:00
virusdefender
4d2a5c129e 重命名工程 qduoj -> oj 2015-08-02 08:59:01 +08:00
virusdefender
39fa61c5f2 Accept Merge Request #2 : (virusdefender-dev -> master)
Merge Request: 合并 virusdefender-dev 到 master
Created By: @virusdefender
Accepted By: @virusdefender
URL: https://coding.net/u/virusdefender/p/qduoj/git/merge/2
2015-08-02 08:53:38 +08:00
virusdefender
4f40f28a8a 修改部分设置项的位置 2015-08-02 08:50:38 +08:00
virusdefender
cac9ac91f6 增加问题展示页面和相关静态文件 2015-08-02 08:50:19 +08:00
virusdefender
f80d10917f 修改 build.js 将 css inline 化 2015-08-01 23:16:48 +08:00
virusdefender
27fda78bf2 为了方便合并 js,调整 require.js 的 配置引入位置。 2015-08-01 22:53:01 +08:00
virusdefender
eea0a7fbde 修改 require.js config 的相对路径 2015-08-01 22:28:38 +08:00
virusdefender
999d03b8f7 更换 alert 为 bootstrap 的 modal 2015-08-01 22:23:18 +08:00
virusdefender
26dab5bd91 修改项目结构,还有些混乱。 2015-07-31 23:23:15 +08:00
virusdefender
c6d6b13072 增加几个 model 2015-07-18 17:17:33 +08:00
virusdefender
3ee4b57802 增加了题目的 model 修改几个 typo 2015-07-17 11:00:15 +08:00
virusdefender
dd7fe6ee44 给编译器也增加超时保护
比如使用include</dev/random>就可能导致编译器卡死,增加了一个编译超时。
重命名了exception模块
整理了部分格式
2015-07-07 21:04:38 +08:00
virusdefender
d85ed0a2ec 修复部分情况下解析lrun输出结果失败的问题
因为lrun的输出也是重定向到stderr的,程序也可能向这里面输出,造成解析错误和潜在的伪造输出结果的问题。
2015-07-07 19:26:40 +08:00
virusdefender
c033b2c1e8 增加java编译参数 2015-07-07 18:07:54 +08:00
virusdefender
ef88a8a155 修改部分常量定义
增加编译功能
2015-07-07 13:33:38 +08:00
virusdefender
cc0f720de9 修改代码风格和部分typo
主要是将类的私有变量进行了重命名,改为_开头
2015-07-06 19:20:12 +08:00
virusdefender
5f8f2acf82 修复代码输出重定向错误的问题 增加了输出结果判断
lrun在运行的时候,输入输出重定向的context是当前的shell,所以不能重定向到进程的tmpfs中。考虑在docker中开辟tmpfs缓存空间。
输出结果比较是采用的md5,暂时没考虑格式错误的情况。
2015-07-06 18:59:30 +08:00
virusdefender
f1915a8b33 使用更好的办法修复Python2不能pickle实例方法的问题
详见 https://virusdefender.net/index.php/archives/318/
2015-07-03 20:10:38 +08:00
virusdefender
b9143c6408 修复子进程中引发的异常无法捕获的bug
多进程中子进程引发异常之后并不会直接显示,而是在get()方法被访问的时候再次引发异常。参考http://stackoverflow.com/questions/22094852/how-to-catch-exceptions-in-workers-in-multiprocessing
2015-07-03 16:56:40 +08:00
virusdefender
a26757916e 删除多线程库 2015-07-03 16:02:23 +08:00
virusdefender
ae931b4dba 将判题控制器由多线程修改为多进程
我一定是sb了,使用Python的多线程跑cpu密集型的应用。
由于Python的GIL的存在,导致在cpu上每次只能有一个线程在运行。如果一个线程运行,而且cpu时间是3秒的话,那实际运行时间将大约3秒。如果两个线程同时在进行,那总运行时间几乎要翻倍。

而换用多进程之后,单个进行运行实际时间只是稍微大于cpu时间,两个进程同时运行的时候,总的时间也是cpu时间稍微增加。

同时Python2在多进程之间运行类方法的时候存在bug,使用了 http://stackoverflow.com/questions/1816958/cant-pickle-type-instancemethod-when-using-pythons-multiprocessing-pool-ma/7309686#7309686 的方法进行patch。然后不同进程之间共享的时候,要防止循环依赖,参考 http://stackoverflow.com/questions/25382455/python-notimplementederror-pool-objects-cannot-be-passed-between-processes
2015-07-03 16:01:53 +08:00
virusdefender
b43dfe37c8 judge在ubuntu上暂时能跑起来了 2015-07-02 23:39:18 +08:00
virusdefender
8f67c37d0c 调用lrun判题和解析判题结果的框架代码完成
使用Python代码调用lrun,然后解析结果。还没有完成,剩下输出对比。
2015-07-02 17:23:42 +08:00
virusdefender
592720dd01 增加用户登录
包括用户model、用户登录模板、登录api和测试。
2015-06-29 12:43:17 +08:00
virusdefender
00052d8e9b 创建新工程 添加了一些通用代码和数据库模型 2015-06-26 15:59:53 +08:00