python - 为什么我的 pygame 代码在 32 位上运行得更快?
问题描述
我安装了 python 3.7.3 32 位和 python 3.7.3 64 位。在两个版本的 python 上运行这个简短的 pygame 脚本会导致在 32 位上运行的版本要快得多。这是什么原因?
我在 python37 64bit、pythonw37 64bit、python37 32bit 和 pythonw37 32bit 上同时运行以下代码,并且在 32 位版本上帧速率始终保持更快。
我想了解为什么代码在 32 位上的执行速度要快得多,如果有的话,我会期望相反。
import sys
import time
import pygame
from pygame.locals import *
pygame.init()
SIZE = WIDTH, HEIGHT = (640, 390)
WHITE = (255, 255, 255)
BASE_COLOR = (0, 0, 0)
MAX_FPS = 0
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()
courier12 = pygame.font.SysFont("Courier", 12)
frame_count = 0
frame_rate = 0
t0 = time.time()
update_rects = list()
version_text = courier12.render(f"{sys.version}", True, WHITE)
first = True
running = True
while running:
dt = clock.tick(MAX_FPS) / 1000
# handle input
for event in pygame.event.get():
if (event.type == pygame.QUIT) or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
running = False
# update
frame_count += 1
if frame_count % 500 == 0:
t1 = time.time()
frame_rate = 500 / (t1-t0)
t0 = t1
# draw
screen.fill(BASE_COLOR)
version_rect = screen.blit(version_text, (10, 18))
if first:
update_rects.append(version_rect)
first = False
fps_text = courier12.render(f"{frame_count:0>8}, {frame_rate:.2f} fps", True, WHITE)
update_rects.append(screen.blit(fps_text, (10, 5)))
# render to screen
pygame.display.update(update_rects)
update_rects.clear()
pygame.quit()
sys.exit()
解决方案
推荐阅读
- c# - 寻找通用日志接口以在 NuGet 包中创建通用日志记录
- node.js - nodejs函数的语法
- angular - 如何从 Observable 获取字符串值
? - android - 如何使用最佳实践在 Android 上创建定时会话?
- python - PHP DOM-Document 和 XPath:获取类数据
- javascript - 即使有 http 错误响应,如何仍然获取 xmlhttprequest 响应文本
- angular7 - 如何在primeng中设置日期范围的值
- python - 在 Python 中训练后,神经网络没有给出预期的输出
- python - 无法在 Mint Linux 上安装 miniconda
- roku - Focus 如何与 Roku 中的 PanelSet 配合使用?