标签: runtime

在运行时设置JVM堆大小

有没有办法从正在运行的Java程序中设置堆大小?

java heap jvm runtime

60
推荐指数
3
解决办法
5万
查看次数

什么时候constexpr函数在编译时得到评估?

由于在运行时可能会调用声明为constexpr的函数,编译器在哪个条件下决定是在编译时还是在运行时计算它?

template<typename base_t, typename expo_t>
constexpr base_t POW(base_t base, expo_t expo)
{
    return (expo != 0 )? base * POW(base, expo -1) : 1;
}

int main(int argc, char** argv)
{
    int i = 0;
    std::cin >> i;

    std::cout << POW(i, 2) << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我在编译时是未知的,这可能是编译器将POW()视为在运行时调用的常规函数​​的原因.然而,这种动态虽然看起来很方便,但却具有一些不切实际的含义.例如,是否有一种情况我希望编译器在编译时计算constexpr函数,编译器决定将其视为普通函数,而它在编译时也会工作?有任何已知的常见陷阱吗?

c++ runtime compile-time constexpr c++11

58
推荐指数
2
解决办法
1万
查看次数

如何在XCode中配置独立的运行时设置集

我的iPhone应用程序连接到三个不同的服务器,例如:生产,登台测试.应用程序使用了一堆配置值,具体取决于它连接到哪个服务器,例如Facebook App ID,TestFlight团队密钥等.

我想在GIT中进行所有设置,并且只选择应用程序在编译或发布时应该使用的配置.例如,选择测试时,产品 - >在XCode中运行运行连接到测试的应用程序的调试版本,产品 - >存档创建具有也连接到测试的发布版本的IPA文件.

我不想创建比调试和发布更多的构建配置(因为这意味着构建配置/运行时配置的6种不同组合).我认为,理想的解决方案是我有三种方案:生产,测试登台,每个方案选择三个Info.plist文件中的一个用于应用程序.这将允许我不仅定义不同的运行时设置,还根据后端服务器定义不同的应用程序版本或包标识符.但是,除了选择不同的构建配置之外,我看起来不能以任何其他方式配置存档操作.任何想法,如果可以以任何方式实现?

编辑:为了使它更清晰,生产/暂存/测试是后端服务器,而不是iOS应用程序的版本.iOS应用程序有两个版本:debug/release.换句话说,我可能想运行连接到生产服务器的应用程序的调试版本,例如调试由该服务器返回的JSON引起的崩溃.为了清楚起见,我本可以将服务器命名为A,B和C.

iphone configuration xcode runtime ios

57
推荐指数
2
解决办法
2万
查看次数

通过热交换机制在运行时更改方法

假设我们有一个简单的Java程序,它只包含一个类:

public class HelloWorld {

   private static void replacable(int i) {
      System.out.println("Today is a nice day with a number " + i);
   }        

   public static void main(String[] args) throws Exception {
      for(int i = 0; i < 100000; ++i) {
      replacable(i);
      Thread.sleep(500);
   }
}
Run Code Online (Sandbox Code Playgroud)

在编译并运行之后,输出将是:

今天是0号的好日子

今天是一个美好的一天,1号

今天是2号球员的好日子

今天是一个美好的一天,3号

...

我的问题:是否存在(或者是否存在)replacable在运行时交换方法的某种方式?有点像HelloWorld用新版本编写另一个版本replacable,编译它,然后在已经运行的JVM中编写旧版本?

所以,如果我像这样编写新版本:

private static void replacable(int i) {
   System.out.println("Today is an even nicer day with a number " + i);
}  
Run Code Online (Sandbox Code Playgroud)

是否有类似于Erlang的热代码交换,我可以这样做: …

java runtime hotswap

56
推荐指数
3
解决办法
4万
查看次数

在调用Runtime.exec时捕获stdout

在客户端计算机上遇到网络问题时,我希望能够运行一些命令行并将结果通过电子邮件发送给自己.

我发现Runtime.exec允许我执行任意命令,但在String中收集结果更有趣.

我意识到我可以将输出重定向到一个文件,然后从文件中读取,但我的蜘蛛侠意识告诉我有一种更优雅的方式.

建议?

java shell runtime

54
推荐指数
5
解决办法
7万
查看次数

C++中的sizeof是在编译时还是运行时评估的?

例如,此代码段的结果取决于哪台机器:编译器机器或机器可执行文件有效?

sizeof(short int)
Run Code Online (Sandbox Code Playgroud)

c++ runtime sizeof compile-time

54
推荐指数
4
解决办法
2万
查看次数

是否可以在C++运行期间动态创建函数?

C++是一种静态的编译语言,在编译期间解析模板等等......

但是有可能在运行时创建一个函数,这在源代码中没有描述,并且在编译期间还没有转换为机器语言,因此用户可以向它投入源中没有预料到的数据吗?

我知道这不可能以一种简单的方式发生,但肯定必须是可能的,有很多编程语言没有被编译并且动态创建那些用C或C++实现的东西.

也许如果创建了所有原始类型的工厂,以及将它们组织成更复杂的对象(如用户类型和函数)的合适数据结构,这是可以实现的吗?

欢迎提供有关该主题的任何信息以及指向在线资料的链接.谢谢!

编辑:我知道这是可能的,它更像是我对实现细节感兴趣:)

c++ runtime function dynamic

54
推荐指数
7
解决办法
3万
查看次数

什么`__import __('pkg_resources').declare_namespace(__ name __)`do?

在一些__init__.py模块文件中,我看到了这样的单行:

__import__('pkg_resources').declare_namespace(__name__)
Run Code Online (Sandbox Code Playgroud)

它做了什么以及为什么人们使用它?假设它与在运行时动态导入和创建命名空间有关.

python namespaces module runtime

51
推荐指数
2
解决办法
1万
查看次数

JVM堆栈,堆和线程如何映射到物理内存或操作系统

编译器书(The Dragon book)解释了在堆栈上创建的值类型,并在堆上创建了引用类型.

对于Java,JVM还在运行时数据区域中包含堆和堆栈.在堆上创建对象和数组,方法帧被推送到堆栈.所有线程共享一个堆,而每个线程都有自己的堆栈.下图显示了这一点:

在此输入图像描述

有关Java运行时数据区的更多信息.

我不明白的是,由于JVM本质上是一个软件,那些JVM堆,堆栈和线程如何映射到物理机器?

如果有人可以比较Java和C++之间的这些概念,我将不胜感激.因为Java在JVM上运行,但C++没有.

为了使这个问题更加准确,我想知道以下内容:

  1. 与Java相比,C++运行时数据区是什么样的?一张图片会有所帮助,我找不到像上面的JVM那样好的图片.
  2. JVM堆,堆栈,寄存器和线程如何映射到操作系统?或者我应该问他们如何映射到物理机器?
  3. 每个JVM线程只是一个用户线程并以某种方式映射到kernal是真的吗?(用户线程与内核线程)

更新:我为进程的运行时物理内存绘制了一张图片.
在此输入图像描述

c++ java memory jvm runtime

51
推荐指数
1
解决办法
2万
查看次数

UIStoryboard:获取活动故事板的正确方法是什么?

我目前正在疯狂地挖掘所有的文档,并没有找到我正在寻找的东西.我怀疑这是真正的哦!回答.

我只需要在主包中找到活动的故事板,并想知道执行此操作的最佳方法.

这样我就可以使用它[UIStoryboard storyboardWithName:@"XXX" bundle:mainBundle]来提取正在运行的故事板.

我知道如何通过打开成语来克服它,但我觉得这是一个... kludge.

这样做的正确方法是什么?

更新:

好.我找到了.

像往常一样,在Stack Overflow(官方Apple文档站点;)上.

这是我确定的代码:

UIStoryboard *st = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
Run Code Online (Sandbox Code Playgroud)

runtime storyboard ios

50
推荐指数
3
解决办法
4万
查看次数