gpt4 book ai didi

ironpython - 为什么 IronPython 在构建为 exe 时导入模块比作为脚本慢得多?

转载 作者:行者123 更新时间:2023-12-03 17:59:53 25 4
gpt4 key购买 nike

我为工作编写了一个小脚本,在开发它时一切都很好,但是
当我将它转用于生产用途时,人们提示它的时间
采取显示第一种形式。看着它,似乎一直都是
用于导入脚本使用的各种模块。我制作了一个新脚本
仅导入语句和打印 Hello World ,然后将其运行为
一个python脚本和一个可执行文件,结果如下。发生了什么事和
有什么办法可以加快速度吗?

python 文件:

$ for i in {1..10}
> do
> time ./ipy.exe time.py
> done
real 0m1.712s
real 0m1.701s
real 0m1.689s
real 0m1.691s
real 0m1.709s
real 0m1.663s
real 0m1.697s
real 0m1.700s
real 0m1.699s
real 0m1.741s

用ipy构建的exe pyc.py/main:time.py/target:exe
$ for i in {1..10}
> do
> time ./time.exe | grep -v user | grep -v sys
> done
real 0m22.119s
real 0m22.116s
real 0m22.133s
real 0m21.816s
real 0m21.985s
real 0m21.785s
real 0m22.010s
real 0m21.686s
real 0m21.877s
real 0m21.944s

time.py 的内容:
import clr
from clr import AddReference
AddReference("System.Windows.Forms")
AddReference("System.Drawing")
AddReference("p4api")
import cgi
from System.Diagnostics import Process
from P4API import *
import System
from System import *
from System.Windows.Forms import *
from System.ComponentModel import *
from System.Drawing import *
from System.Threading import *
import re
import urllib
import os
import tokenize
from cStringIO import StringIO
from optparse import OptionParser
import os
import urllib
import ntpath
import stat
import genericpath
import warnings
import linecache
import types
import UserDict
import _abcoll
import abc
import textwrap
import string
import urlparse
import collections
import keyword
import nturl2path
import mimetools
import tempfile
import random
import __future__
import rfc822
import tokenize
import token
import codecs
import ConfigParser
import uuid
import sys

print "Hello World"

最佳答案

将/platform:x86 添加到 pcy.py 调用并在生成的 dll 和 exe 上运行 ngen 的组合将 exe 的执行时间减少到作为脚本调用它的 1/2。我认为那是成功的。

关于ironpython - 为什么 IronPython 在构建为 exe 时导入模块比作为脚本慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com