我有一个 Fortran90 程序 (Packmol),直到它是通过静态内存分配实现的。
我将代码更改为使用动态分配,以便在开始时分配所有数组。在某些示例中,我的性能损失了 400%。
然后,我验证了即使数组的大小与我使用静态分配时的大小相同,问题仍然存在。也就是说,如果我将分配更改为
类似
That 的内容,则足以导致性能损失。当然,当所有需要动态分配的数组都这样做时,大约有 30 个。
double precision :: x(1000)
double precision, allocatable :: x(:)
allocate(x(1000))
有没有办法以更有效的方式分配数组以减少性能损失?或者有人有不同的建议?
非常感谢。
编辑:不知何故,问题得到了解决。动态版本现在只比静态版本慢一点,这是预期的。我真的不知道是什么导致了之前的重大放缓。
我在TCL中使用DES加密一些短语,我想将这些加密的短语存储在一些我需要操作的ascii文件中.因此,我希望"加密短语"仅由标准的ascii字符构成(优先没有空格).
我正在使用这样的东西来制作:
set encrypted [ DES:des -dir encrypt -key "abcdefgh" "This_phrase" ]
Run Code Online (Sandbox Code Playgroud)
我希望"加密"成为标准的ascii代码,而不是发生的事情,如果显示,甚至可能会制动我的终端.
非常感谢你.莱昂德罗.