Comments (17)
If we write the results to the file after each judging, it might cause large amount of disk I/O, which is not good.
To solve it, as early as in LemonPlus, it is supported to save file manually.
It's in the menu of file
(maybe, I remember). I can't remember if ctrl + s
works.
from project_lemonlime.
If we write the results to the file after each judging, it might cause large amount of disk I/O, which is not good.
To solve it, as early as in LemonPlus, it is supported to save file manually.
It's in the menu offile
(maybe, I remember). I can't remember ifctrl + s
works.
Emmm,it seems that LemonLime can also save manually.
But I don't think writing the results to the file after each judging will cause large amount of disk I/O for a common contest.
like a test in a team,Most cdf files are very small,so I don't think the amount of disk I/O will be large enough to have an impact to
normal using.
from project_lemonlime.
Think about this situation:
Lemon is running a large contest and the system or lemon crashed due to some reason (oom, malicious code, etc)
The result should be auto-saved (after each run, or after a delay)
from project_lemonlime.
I think auto-saving for each 5min and create a backup for the old one(manually saved version) is a good way to handle this.
from project_lemonlime.
I think auto-saving for each 5min and create a backup for the old one(manually saved version) is a good way to handle this.
I agree with u, an autosave at regular time intervals is a good choice.
But I think the work to change the file format is more important now.
As cena
, if we divide each player's result file, problemset file, contest file and maybe more, we can save each instead of saving the whole contest. Than the immediate saving function can be reached easily.
from project_lemonlime.
Too many files also leaks performance. I still think a simple json/xml/yaml file is better.
from project_lemonlime.
@undefined-moe
Let me start with something that happened in the past:
Maybe I'm a pupil that time.
We haved a contest and we have judged for dozens of minutes,but someone usedsystem("shutdown ")
then we have to re-judge all the codes again.
I think @Dust1404 's suggestion is feasible,but will it increase the difficulty of code to implement the operation of summing up grades?
from project_lemonlime.
This is a problem related to sandbox module, not contest management module.
from project_lemonlime.
Oh,we used lemon that time.
from project_lemonlime.
This is a problem related to sandbox module, not contest management module.
But lost results show it's defects of saving mechanism
from project_lemonlime.
ndbox module, not contest management module.
@undefined-moe btw,can problems like this be solved now?
from project_lemonlime.
btw,can problems like this be solved now?
maybe by using something like sandboxie on windows, cgroup on linux ?
and I have an idea: create a .progress
file when judging, write pid to the first line, and after each contestant's code finished running, append the result to the file. And when lemonlime starts, check if the file exists, then check if the pid is running.
if pid is running, just display an error said the contest is locked by another lemonlime process,
and if not, display a prompt: "Found a uncompleted progress, do you want to load it and continue?" with "Yes", "Yes, but skip this contestant", "No" options to user.
from project_lemonlime.
btw,can problems like this be solved now?
maybe by using something like sandboxie on windows, cgroup on linux ?
and I have an idea: create a
.progress
file when judging, write pid to the first line, and after each contestant's code finished running, append the result to the file. And when lemonlime starts, check if the file exists, then check if the pid is running.
if pid is running, just display an error said the contest is locked by another lemonlime process,
and if not, display a prompt: "Found a uncompleted progress, do you want to load it and continue?" with "Yes", "Yes, but skip this contestant", "No" options to user.
Sounds great !
from project_lemonlime.
Is this in progress? 🤔
from project_lemonlime.
Is this in progress? 🤔
I also want to ask this question,
It's very useful, I think
@undefined-moe
from project_lemonlime.
日常催更/xyx
from project_lemonlime.
Now results are written every 30s
from project_lemonlime.
Related Issues (20)
- 文件错误
- [BUG] `char` 数组长度没开够?不会用 `std::string`?不会用 `QString`? HOT 4
- [Feature] 什么时候支持子任务得分为每个测试点得分取 min
- 如何在NOILinux2.0中安装并使用呢,尝试了很久,问题一直出在Qt5上[Feature]
- 如何在NOILinux2.0上安装使用呢,尝试了很久一直在Qt5上出问题 HOT 10
- 答案行尾多了一个ASCII编码为0的字符,会判断为答案错误[BUG] HOT 1
- [BUG]程序不能运行 HOT 16
- 未正确设置 submodule 案例一例 HOT 1
- [BUG] Mac arm64 打开显示文件已破损 HOT 2
- [BUG]spdlog似乎出问题了 HOT 5
- [BUG] 0.3.4.3 版本在 Linux 下测评会报错「程序不能运行」 HOT 9
- 添加判断格式错误颜色 HOT 3
- [BUG] 增强型测试点调整器里面名字居然是按照名字长度排序的。 HOT 2
- [Feature] 便携模式 HOT 2
- [BUG] 第一个点TLE HOT 10
- [BUG]每道题第一个点都会TLE HOT 2
- [Feature]想在评测结果上直接查看选手的源代码
- 对 RE 的程序保存 stderr 内容的建议
- 测试时前几个测试点TLE[BUG] HOT 1
- [BUG] 长时限题目无法停止测评 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from project_lemonlime.