我正在编写一个应用程序,我们需要在其中执行不受信任的 Python 代码。(即类似于家庭作业提交服务器的应用程序,其中学生输入不受信任)
考虑一下,我的第一个想法是通过禁用语言的文件 I/O 功能(因此,将代码限制为仅使用 stdin/stdout),程序不会对系统造成太大伤害。
这是正确的,还是有我没有想到的攻击媒介?
我可以传递某种 python 标志或编译器选项来隔离代码吗?
我最接近组装的是构建我自己的Java类库,它加载类文件并允许您创建,编译和反编译类.在努力完成这个项目时,我想知道Java虚拟机在JIT优化期间如何在运行时实际生成本机机器代码.
它让我思考:如何生成机器代码并在运行时使用汇编执行它,作为奖励,没有JIT编译器库,或"手动"?
for 循环之后的代码在顶部的for 循环之前执行。Javascript是同步执行的,为什么先在for循环后执行?
function solution(A) {
let diff = [];
for (let i = 1; i < A.length; i++) {
let sum1 = 0;
let sum2 = 0;
for (let j = 0; j < i - 1; j++) {
sum1 += A[j];
console.log('Why this is executing later? ' + sum1);
}
for (let k = i; k < A.length; k++) {
sum2 += A[k];
}
console.log('Why this is executing frist? ' + sum1);
diff.push(Math.abs(sum1 - sum2)); …Run Code Online (Sandbox Code Playgroud)当我们需要在执行时检查参数的值时,特别是使用循环.我们怎么检查它们?
想象一下下面的一段代码:
if someBool && funcReturningABool() {
// code here...
}
Run Code Online (Sandbox Code Playgroud)
wheresomeBool是一个布尔值并funcReturningABool返回真或假。
如果someBool等于false,funcReturningABool仍然会被执行吗?
我编写了一个Java程序,用于计算不同整数循环中的最大循环.我的代码很快,在我的四核A8 AMD处理器上的毫秒级结果.
我想减慢执行速度至少5秒.有什么我可以添加到代码中来减慢速度吗?
import java.util.Scanner;
class SNASA {
public static void main(String args[]) {
long i,j,n,max=0, pos=0, x, y;
long count=0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the positive integer :");
while(sc.hasNextLong()) {
x=System.currentTimeMillis();
i = sc.nextLong();
long arr[] = new long [60000000];
for(long p=i/2;p<i;p++) {
arr[(int)p]=0;
}
for(j=1;j<=i;j++) {
n=j;
count=0;
tag:while(n!=1) {
if(n<60000000) {
if(arr[(int)(n-1)]!=0) {
count = count + arr[(int)(n-1)];
break tag;
}
}
if(n%2==0) {
n = n/2;
count++;
} else {
n = (2*n)+n+1;
count++; …Run Code Online (Sandbox Code Playgroud) 我正在解决一个问题,我被要求输出满足某些条件的数字列表.获得的分数取决于输出的大小(因为它是部分标记问题).如何限制我的代码以保持输出数字,直到它达到时间限制.
execution ×7
java ×2
arrays ×1
assembly ×1
asynchronous ×1
c++ ×1
debugging ×1
eclipse ×1
go ×1
if-statement ×1
instructions ×1
javascript ×1
performance ×1
python ×1
sandbox ×1
security ×1
synchronous ×1
time ×1