当前位置: 首页 > 知识库问答 >
问题:

在不牺牲常规工作流程的情况下进行优化:参数、POD等

阮俊弼
2023-03-14

https://martimm.github.io/gnome-gtk3/content-docs/tutorial/Application/sceleton.html,缩写为:

在拉库,重要的是主程序保持小型。这是因为所有代码、程序和模块都被解析并编译成中间代码,由虚拟机执行。大多数情况下,这将是MoarVM,但也有一个JVM,稍后可能还有其他JVM。无论如何,在运行之前,编译的模块会保存到。预编译目录,但不预编译程序。这意味着程序总是在运行之前被解析和编译,这就是保持它小的原因。

use UserAppClass;

my UserAppClass $user-app .= new;
exit($user-app.run);

好吧,你不能得到比这个更小的…,或者用这个内衬<代码>退出(UserAppClass.new.run)。

其余的代码在UserAppClass中定义。

很好。

>

此外,为程序嵌入的POD可能会驻留在. raku程序中。
POD放入used by. rakuProgram. rakumod
POD放入. raku程序中,它不再小了。

此外,这种方法是否有命名约定?
比方说,你有一个程序报告当你的咖啡准备好了。它的子MAINcoffee-ready.raku中,并且您使用aQueryCoffeeMachine.rakumod
您更改了文件的布局,现在对于相同的程序>当你的咖啡准备好了报告你有一个coffee-ready.raku启动器,一个咖啡准备好了。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/code>还应该保持名称,尽管改变其内容
但如何应咖啡就绪。MAIN. rakumod被命名?


共有1个答案

黄伟
2023-03-14

无论如何,在运行之前,编译的模块会保存到中。预编译目录,但不预编译程序。

Aiui有人可以将预编译扩展到主程序文件,但这对于核心开发人员来说优先级较低,因为可以使用以下解决方案解决此问题:

  1. <代码>sub-MAIN在模块中时不执行

如果将其导出/导入主程序,则在运行主程序时将执行模块的main

# MAIN.rakumod
our sub MAIN (Int $int-arg, Str $str-arg) { $int-arg }

# main.raku
use lib '.';
use MAIN;
  1. 。。。我们得到了。raku程序不知道参数

如果在主程序中wrap导入的MAIN,您将知道参数:

# main.raku
use lib '.';
use MAIN;
&MAIN.wrap: -> |args { say args; callsame }

(如果在CLI传递的参数与从MAIN模块导入的MAIN子的签名不匹配,则显示使用情况消息。否则,包装在main.raku得到调用,可以做什么,它希望与传递的参数,并决定如何调用导入的MAIN。)

(我从能否捕获RUN-MAIN?中使用的例程的返回值中提取了此解决方案)

我不知道有什么办法可以避免这种情况。(可能是从另一个Raku文件签出accesspod,了解如何至少访问另一个文件中的POD。)

也许一个狭隘地关注这一方面的新问题是合适的?

如果是我,在我的头顶上,我可能有一个咖啡就绪文件夹,然后在其中,有一个咖啡就绪。raku,一个主。rakumod,以及一台查询报价机。拉库莫德

 类似资料:
  • 在尝试测试客户机类时,调用后存根可以正常工作,而GET不能正常工作。我在这里做错了什么/没有正确理解? 客户代码(POST): 带短截(POST): 正常工作(httpResponse将有200个OK)。 GET use时,它不会存根api调用(httpResponse将为404 Not found)。

  • 想改进这个问题吗 更新问题,以便通过编辑此帖子,用事实和引用来回答。 升级正在运行的工作流的建议做法是什么? 如果已经有使用以前的工作流实现创建的正在运行的执行,则进行任何代码更改或更新工作流逻辑都会导致Cadence出现“非确定性错误”,因为它无法使用更新的实现重播现有工作流执行的历史记录。 在不破坏现有工作流程执行的情况下,有哪些策略来处理升级?

  • 我正在建立一个应用程序,并使用MariaDB作为我的数据库。我有一张桌子“kick_votes”。其主键包含三个字段: null

  • 我有HTML+CSS页面,其中有两个按钮: 我想让“顶级评论”默认可见。所以在本页的最后,我将简单的JavaScript 自动点击“顶部评论”按钮。 在我的开发环境中,一切都运行良好。但当将代码上传到启用CloudFlare的生产服务器时。JavaScript click()函数不起作用。 我已经为这个问题给CloudFlare的支持写了信,但两天后仍然没有任何回应。 对于我如何调试为什么这个Ja

  • 问题内容: 我正在运行一个wordpress网站,每个PHP进程的使用空间约为200mb至250mb。使用16GB的ram,服务器只能处理大约70个进程。通过将虚拟内存增加到16GB,它可以处理140个。之后,负载不断增加。如果10分钟内有200个连接,则在3Ghz四核xeon处理器上服务器负载将达到20个! 我曾尝试停用所有插件,但这只会使每个进程的PHP内存使用量减少不到10%。suPHP告诉