问题标签 [build-time]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
214 浏览

c# - 用于大型代码库的 C# 编译器会在具有巨大 RAM 的机器上运行得更快吗?

我在 2G RAM 机器上运行的大型遗留代码库中看到了一些真正缓慢的构建时间,而没有适当的程序集分解。所以,如果我想在不进行代码大修的情况下加快速度,如果童话 IT 部门提供一台 16G(或其他如此巨大的数量)RAM 机器,会不会快得多?换句话说,RAM 是足够大的 dotnet 项目的主要瓶颈还是存在其他主要问题?

出于纯粹的好奇,任何关于构建 Java 的类似情况的输入也受到赞赏。

0 投票
5 回答
3710 浏览

objective-c - 在目标 c 中导入标头

在 Objective-c 中,当我们按照约定将一个类的对象用于另一个类时,我们应该在 .h 文件中转发声明该类,即@class classname;. 并且应该在 .m 文件中导入头文件,即#import "header.h". 但是如果我们在 .h 中导入头文件,那么我们不必在 .m 文件中再次导入它。那么这个约定背后的原因是什么?哪种方式有效?

0 投票
1 回答
2775 浏览

c++ - 如何在 Visual Studio 11 中使用 Shader Model 5.0 编译的着色器?

我正在尝试为我的 C++ DirectX 11 项目编译项目预/离线/构建时中的 .hlsl 文件。Visual Studio 将 .hlsl 文件编译为 .cso 文件。我现在无法将 SM 5.0 的 .cso 文件读入我的程序以创建着色器。

这是我必须从预编译的 .cso 文件创建像素着色器的代码:

像素着色器只是应该返回蓝色像素。通过在 Visual Studio 11 中更改其编译设置,它已被编译为 Shader Model 5.0。但是,在运行程序时,尽管没有构建或运行时错误消息,但我尝试渲染的三角形并未显示。

在运行时编译时使用:

而不是 D3DReadFileToBlob(..),仍然没有渲染三角形。

但是,在使用 Shader Model 4.0 时,无论是编译时编译还是运行时编译,都会显示一个蓝色三角形,表示它可以工作。

这是我的 PixelShader.hlsl 文件中的代码。对于 Shader Model 5.0 来说,它是否已经过时并且成为我问题的根源?

我使用的是 Windows SDK 库,而不是 2010 年 6 月的 DirectX SDK。我的显卡是 nVidia 8800 GTS。

0 投票
1 回答
142 浏览

factory-pattern - OOD - 如何设计和构建项目以避免重新部署主应用程序(工厂模式?)

我想检查一下我对使用和实现工厂模式的理解。假设我正在设计一个应用程序来玩几个游戏(国际象棋、扑克)。游戏是从以下来源之一加载的:CSV、XML,但我希望能够在不重新编译/重新部署应用程序的情况下添加新来源(比如 DB)。我只想部署工厂逻辑和新加载器

这暗示了游戏加载器的工厂模式,类似于以下内容,但由于具体加载器返回一个列表,因此会导致循环依赖。

我找到的解决方案是创建一个新项目 Application.Model,在其中移动 Game、Chess 和 Poker,ecc 这样,Application.prj 和 Factory.prj 将只需要引用 Application.Model。并且添加数据库源只需要 factory.prj 重新编译和部署。

这是要走的路吗?或者有没有办法实现工厂模式以获得相同的结果。我不想反思。

0 投票
2 回答
434 浏览

c++ - 我可以生成一个大小为 n 的常量数组吗

我想生成一个常数数组power[501] = {1, p % MODER, p*p % MODER, p*p*p % MODER, ..., p^500 % MODER},其中p是常数数字。

我知道我可以使用以下代码生成p^n % MODER :

它确实有效!

我的问题是我是否可以生成我想要的数组?

0 投票
1 回答
501 浏览

android - 是否可以将我的 android 项目拆分为多个项目以减少编译时间?

我创建了一个需要很长时间才能构建的大型 android 应用程序。一些命名空间很少更改。是否可以在单独的项目中创建这些名称空间并将它们作为库导入到主项目中?如果是,我该怎么做?

谢谢,

0 投票
4 回答
514 浏览

objective-c - #import 的用法——在非常大的项目中使用 #import 的一般准则 (ObjC)

#import我的标头和实现在哪里?
有关于我应该做什么的规则吗?
有没有办法在单个头文件中导入所有内容?

0 投票
3 回答
440 浏览

c++ - 我如何找出编译器花费时间的地方?

我如何找出编译器花费时间的地方?

我的构建太慢了,我已经为 VC++ 临时文件使用了 RAMdisk,它没有任何区别。(我有一个 SSD,所以我预计没有区别。)

该项目中的大多数单个 C++ 文件大约需要 . 2 秒编译,这看起来很糟糕(因为我也没有任何项目内并行化,因为我使用的是 VS2005)。

我该如何优化呢?不要在没有分析的情况下进行优化,但是如何分析编译器?

注意:这些并没有真正的帮助:


让我们添加一个很好的评论:你有很多模板吗?您的文件平均有多大?您是否检查过仅包含最少的必要标题

不,我没有。我当然可以(并且pro'lly会)。我也许能找到一些东西,但这都是猜测反复试验

“大家”告诉你,你应该只在测量/分析之后进行优化,但是在优化编译时间时,我们又回到了试错?


注意:评论中建议的“hack”__TIME__不起作用,至少在 Visual-C++ 上不起作用,因为(如文档所述):当前源文件最新编译时间。时间是 hh:mm:ss 形式的字符串文字。——我想至少可以用这个标记获得单个编译单元的计时,但它无助于深入研究一个编译单元。

0 投票
1 回答
265 浏览

ios - 在构建时将密钥添加到 plist

我想[AppName]-Info.plist在内置时间中添加一个键。有可能的?我怎样才能在构建时间内做到这一点。

让我解释一下我在这里尝试做什么:我正在编写一个库,当开发人员想要发布应用程序时,我想从应用程序中读取 bundleIdentifier。并将密钥添加到 info.plist 中包含此信息。

也许我可以在运行时写这个?

0 投票
7 回答
11057 浏览

c++ - C/C++:如何获取构建时间的整数 unix 时间戳(不是字符串)

我正在尝试实现非常微不足道的事情:我需要存储构建时间的整数 32 位 unix 时间戳,但是我发现的所有宏(__DATE__, __TIME__, __TIMESTAMP__)都扩展为字符串,而不是整数。

看来,我们只是没有它(这对我来说很奇怪)。我真的想要整数,而不是字符串。

获得它的最佳做法是什么?

升级版:

附带说明:我做嵌入式的东西,所以我没有足够的资源(比如,128 KB 的闪存),因此解析字符串真的是个坏主意。

为什么我需要它:我只需要每个 beta 版本的唯一版本号。首先,十六进制文件将命名为my-firmware-v2-33-BETA-1397315745.hex,其次,当我需要在设备屏幕上显示当前版本时,我可能想以各种格式回显它。