小编Stu*_*ffe的帖子

我的快速测试表明pygame比pysdl2快100倍,怎么回事?

所以我一直在用pygame做游戏,但是性能太差了。经过大量搜索,我发现pygame是围绕SDL构建的,并且SDL2具有GPU支持,因此我想看看使用基于SDL2的东西是否可以提高性能。在将pygame与pySDL2库进行比较时,pygame的速度要快大约100倍...当然,我忽略了某些东西吗?

test_SDL2.py:

import os
os.environ["PYSDL2_DLL_PATH"] = os.path.dirname(os.path.abspath(__file__))

import sys, sdl2, sdl2.ext, time

sdl2.ext.init()
window = sdl2.ext.Window("test", size=(800, 600))
window.show()
factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE)
sprite = factory.from_image("c:\\game\\gfx\\plus.png")

spriterenderer = factory.create_sprite_render_system(window)
while True:
    begin = time.time()
    for i in xrange(100):
        spriterenderer.render(sprite)
    print time.time() - begin

window.refresh()
Run Code Online (Sandbox Code Playgroud)

test_pygame.py:

import pygame, time

img = pygame.image.load('gfx/plus.png')

screen = pygame.display.set_mode((800, 600))
while True:
    begin = time.time()
    for i in xrange(100):
        screen.blit(img, (i,i))
    print time.time() - begin
    pygame.display.flip()
Run Code Online (Sandbox Code Playgroud)

python pygame pysdl2

3
推荐指数
1
解决办法
1657
查看次数

从程序集中捕获/禁用 SIGFPE 异常

在使用 .x86 程序集除以 0 时,出现 SIGFPE 异常idiv。我如何从汇编中禁用它?我需要系统调用还是可以直接在 x86 中完成?

再生产:

测试.asm

default rel
global WinMain

section .data 

section .text
WinMain:
    mov rcx, 0
    mov rdx, 0
    idiv rcx
Run Code Online (Sandbox Code Playgroud)

命令:

nasm -f win64 test.asm
gcc test.obj
gdb a
运行

x86 assembly x86-64 integer-division

1
推荐指数
1
解决办法
92
查看次数

通过HTTPS服务Django站点

我在Django中建立了一个网站,但我想将其作为"HTTPS"(通过端口443加密).

我已经有了证书,但是如何配置Django来使用它呢?可能真的是Django不支持开箱即用,如果是这样,我应该如何以HTTPS作为服务网站?

服务器是Ubuntu 14.04

python django ssl https

0
推荐指数
1
解决办法
816
查看次数

m1 mac,从程序集中调用 nanosleep

我想从程序集中调用类似 nanosleep 的东西,仅使用 SVC 调用。但仅使用我所拥有的有限信息,如何做到这一点并不明显,这个 macos 系统调用调用签名列表: https ://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls 。掌握

我试图弄清楚 C 在调用 nanosleep 时做了什么,我能够将其简化为:

struct timespec {  long tv_sec;  long tv_nsec; };

int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp)
__asm("_" "nanosleep" );

int main() {
    struct timespec remaining, request = { 3, 1 };
    int response = nanosleep(&request, &remaining); }
Run Code Online (Sandbox Code Playgroud)

我不确定那__asm是做什么的,因为这看起来不像组装。不管怎样,我在苹果的 libc 源代码中找到了一个实现nanosleep。它依赖于对 while 的调用clock_get_time,而 libc 中未定义该调用。我在 XNU 源代码中发现了一个提及clock_get_time,但这是在 .defs 文件中,我不知道它是什么,而且似乎没有实现。

无论如何,是否有一些关于 SVC 调用的更好文档,或者我可以在某个地方找到 libc SVC 实现的程序集?

非常感谢任何信息或想法。

macos assembly system-calls arm64 apple-m1

0
推荐指数
1
解决办法
224
查看次数