我实际上是在开发我的第一个VBA项目.(来自C++)
我想通过实现类和多态来改进Microsoft Excel工作簿使用的现有VBA项目.
我的问题是:
1 -我阅读了很多文章/论坛,解释说VBA不是面向对象编程(OOP)语言,不支持多态性.
其中一些人使用关键字Implements提出了一种解决方法.
2 -我还发现了一些像这样的网页,它解释了如何使用Inherits,Overrides,Overridable,MustOverrides等关键字在VBA中执行OOP和多态.
所以我的问题是:
是VBA的面向对象语言,它支持多态?
在icc/icpc intel编译器上是否有以下g ++命令?
?> g++ -march=native -m32 ... -Q --help=target
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
The following options are target specific:
-m128bit-long-double [disabled]
-m16 [disabled]
-m32 [enabled]
-m3dnow [disabled]
-m3dnowa [disabled]
-m64 [enabled]
-m80387 [enabled]
-m8bit-idiv [disabled]
-m96bit-long-double [enabled]
-mabi= sysv
-mabm [disabled]
-maccumulate-outgoing-args [disabled]
-maddress-mode= short
-madx [disabled]
-maes [disabled]
-malign-data= compat
-malign-double [disabled]
-malign-functions= 0
-malign-jumps= 0
-malign-loops= 0
-malign-stringops [enabled]
-mandroid [disabled]
-march= nehalem
-masm= att
-mavx [disabled]
-mavx2 [disabled]
-mavx256-split-unaligned-load [disabled]
-mavx256-split-unaligned-store [disabled]
-mavx512bw [disabled]
-mavx512cd [disabled]
-mavx512dq [disabled]
-mavx512er …Run Code Online (Sandbox Code Playgroud) 我可以通过以下示例总结我的问题:
from enum import Enum
import json
class FooBarType(Enum):
standard = 0
foo = 1
bar = 2
dict = {'name': 'test', 'value': 'test', 'type': FooBarType.foo}
json.dumps(dict)
TypeError: <FooBarType.foo: 1> is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我收到类型错误,因为枚举不是JSON可序列化的.
我主要是实现a JsonEncoder并将其添加到json.dumps()调用中但我无法更改json.dumps()调用的行.
所以,我的问题是:
是否可以在不通过编码器的情况下在json中转储枚举json.dumps(),而是通过在FooBarType枚举中添加类方法?
我希望提取以下json:
{'name': 'test', 'value': 'test', 'type': 'foo'}
Run Code Online (Sandbox Code Playgroud)
要么
{'name': 'test', 'value': 'test', 'type': 1}
Run Code Online (Sandbox Code Playgroud) 我想cython并行执行文件编译。
因此,我看一下Cython.Build源文件,并找到以下cythonize函数签名:
def cythonize(module_list, exclude=None, nthreads=0, aliases=None,
quiet=False, force=False, language=None,
exclude_failures=False, **options):
Run Code Online (Sandbox Code Playgroud)
关于cythonize nthreads选项的以下评论:
"For parallel compilation, set the 'nthreads' option to the number of
concurrent builds."
Run Code Online (Sandbox Code Playgroud)
因此,我尝试在setup.py文件中使用此选项,如下所示:
from setuptools import setup
from Cython.Build import cythonize
from Cython.Distutils.extension import Extension
EXTENSIONS = [Extension(...)
...
Extension(...)]
setup(name='...',
...
ext_modules=cythonize(EXTENSIONS, nthreads=8),
...)
Run Code Online (Sandbox Code Playgroud)
但是我的.pyx文件仍然使用1个线程顺序编译。
我不明白我在这里做错了什么,以及如何使用nthreadsoption来cythonize并行执行编译?
程序:
我为大量数据创建了一个C++计算程序,可以在一个或多个线程上运行.(通过配置文件)
程序环境如下:C++,OpenMp,Redhat-x64,malloc/free
Linux上的结果:
Windows上的结果:
题:
为什么在Linux上使用更多线程时内存消耗会增加?
我有以下指针列表:
(这是一个简单的例子,但实际上,我的列表可能由数百个条目组成)
{0xae5c4e8, 0xa09d4e8, 0xa753458, 0xae554e8}
Run Code Online (Sandbox Code Playgroud)
我通过使用以下方法成功地一一打印指针内容:
p *(const Point *) 0xae5c4e8
Run Code Online (Sandbox Code Playgroud)
如何在一个命令中打印上述列表的内容?
我实际上是通过Mesos使用Docker容器的堆栈运行任务。
有时,某些任务失败了。
以下是一些相关的TaskStatus消息和原因:
message: Container exited with status 1 - reason: REASON_COMMAND_EXECUTOR_FAILED
message: Container exited with status 42 - reason: REASON_COMMAND_EXECUTOR_FAILED
message: Container exited with status 137 - reason: REASON_COMMAND_EXECUTOR_FAILED
Run Code Online (Sandbox Code Playgroud)
是否有对应关系表将TaskStatus消息中的容器错误状态代码与更显式的错误链接在一起?