尽管在所有项目设置(包括in File -> Project Structure -> Project :: Project SDK
)中都指定了JDK 1.7 ,但IntelliJ 13
在尝试编译一些使用菱形运算符的简单Java 7代码时会产生以下错误:
java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
Run Code Online (Sandbox Code Playgroud)
配置中是否还有其他位置-source 7
应启用预期选项?
如何从命令提示符窗口编译和执行.cs文件?
我知道这不是一个编程问题,而是相关的.
我在一个相当大的跨平台项目上工作.在Windows上我使用VC++ 2008.在Linux上我使用gcc.项目中有大约40k个文件.在编译和链接同一个项目时,Windows比Linux慢10到40倍.我该如何解决这个问题?
单个更改增量构建在Linux上为20秒,在Windows上为> 3分钟.为什么?我甚至可以在Linux中安装'gold'链接器,并将时间缩短到7秒.
同样,git在Linux上比Windows快10到40倍.
在git的情况下,git可能不是以最佳方式使用Windows而是使用VC++?你认为微软希望让自己的开发人员尽可能高效,而更快的编译将会有很长的路要走.也许他们试图鼓励开发人员加入C#?
作为简单的测试,找到一个包含大量子文件夹的文件夹并做一个简单的操作
dir /s > c:\list.txt
Run Code Online (Sandbox Code Playgroud)
在Windows上.执行两次并在第二次运行时间,以便从缓存中运行.将文件复制到Linux并执行等效的2次运行并在第二次运行时运行.
ls -R > /tmp/list.txt
Run Code Online (Sandbox Code Playgroud)
我有2个工作站具有完全相同的规格.HP Z600s配备12gig内存,8个内核,3.0ghz.在包含~400k文件的文件夹上,Windows需要40秒,Linux需要<1秒.
我可以设置一个注册表设置来加速Windows吗?是什么赋予了?
一些与编译时间相关的略微相关的链接,不一定是i/o.
显然,在Windows 10(不在Windows 7中)存在一个问题,即关闭进程会持有全局锁定.在使用多个内核进行编译时,因此会遇到多个进程.
该/analyse
选项可能会对perf产生负面影响,因为它会加载Web浏览器.(这里不相关,但很高兴知道)
我们的编译时间非常慢,在双核2GHz,2G Ram机器上可能需要20多分钟.
这很大程度上是由于我们的解决方案的规模已经发展到70多个项目,以及VSS,当你拥有大量文件时,它本身就是瓶颈.(不幸的是,交换VSS不是一个选项,所以我不希望它下降到VSS bash)
我们正在考虑合并项目.我们还在寻找多种解决方案,以便为应用程序的每个元素实现更大的关注点分离和更快的编译时间.我可以看到这将成为一个DLL地狱,因为我们试图保持同步.
我很想知道其他团队如何处理这个扩展问题,当你的代码库达到一个临界质量时你会怎么做,你正在看着状态栏传递编译消息的一半时间.
更新 我忽略了这是一个C#解决方案.感谢所有的C++建议,但是我已经有几年了,因为我不得不担心标题.
编辑:
到目前为止有很好的建议(不是说下面没有其他好的建议,只是帮助了什么)
仍然没有通过编译扯皮,但每一点都有帮助.
Orion在评论中确实提到仿制药也可能有一个游戏.从我的测试来看,似乎确实有最小的性能损失,但不足以确定 - 由于光盘活动,编译时间可能不一致.由于时间限制,我的测试没有包含与实时系统中出现的一样多的泛型或代码,因此可能会累积.我不会避免在它们应该被使用的地方使用泛型,只是为了编译时的性能
替代方法
我们正在测试在新解决方案中构建应用程序新领域的实践,根据需要导入最新的dll,当我们对它们感到满意时,将它们集成到更大的解决方案中.
我们也可以通过创建临时解决方案来对现有代码执行相同的操作,这些解决方案仅封装我们需要处理的区域,并在重新集成代码后将它们丢弃.我们需要权衡重新整合这些代码所需的时间与我们获得的时间,因为没有Rip Van Winkle喜欢在开发过程中快速重新编译的经验.
嵌套在我们的Angular应用程序中的是一个名为Page的指令,由一个控制器支持,该控制器包含一个带有ng-bind-html-unsafe属性的div.这被分配给名为'pageContent'的$ scope var.此var从数据库中分配动态生成的HTML.当用户翻转到下一页时,会调用DB,并将pageContent var设置为这个新的HTML,它将通过ng-bind-html-unsafe在屏幕上呈现.这是代码:
页面指令
angular.module('myApp.directives')
.directive('myPage', function ($compile) {
return {
templateUrl: 'page.html',
restrict: 'E',
compile: function compile(element, attrs, transclude) {
// does nothing currently
return {
pre: function preLink(scope, element, attrs, controller) {
// does nothing currently
},
post: function postLink(scope, element, attrs, controller) {
// does nothing currently
}
}
}
};
});
Run Code Online (Sandbox Code Playgroud)
Page指令的模板(上面的templateUrl属性中的"page.html")
<div ng-controller="PageCtrl" >
...
<!-- dynamic page content written into the div below -->
<div ng-bind-html-unsafe="pageContent" >
...
</div>
Run Code Online (Sandbox Code Playgroud)
页面控制器
angular.module('myApp') …
Run Code Online (Sandbox Code Playgroud) 我试图在OSX上交叉编译一个go app来为windows和linux构建二进制文件.我已经阅读了网上可以找到的所有内容.我发现的最近的例子已经发表(除了许多未完成的关于疯狂邮件列表的讨论):
http://solovyov.net/en/2012/03/09/cross-compiling-go/
但它不适用于我的安装.我去了1.0.2.由于1.0.2是最新版本,因此我认为以上所有示例都不适用于此版本.
尝试将./make.bash --no-clean
ENV变量设置为386/windows,它确实构建了go,但它构建用于我的安装,这darwin/amd64
完全忽略了ENV中设置的构建不同编译器的内容.
有人建议如何做(如果可以完成)?
认为对此的答案非常明显,但在这里:
当我在学校的一个小项目(在java中)时,我编译它.
在我的鸡舍上,我们使用ant来构建我们的项目.
我认为编译是构建的一个子集.它是否正确?构建和编译有什么区别?
相关:
编译和构建有什么区别?
我正在阅读C中的库,但我还没有找到对象文件的解释.任何其他编译文件和目标文件之间的真正区别是什么?
如果有人能用人类语言解释,我会很高兴.
将Python(可能通过中间C表示)编译成机器代码是否可行?
据推测,它需要链接到Python运行时库,Python标准库的任何Python部分本身都需要编译(并链接).
此外,如果您想对表达式进行动态评估,则需要捆绑Python解释器,但也许不允许这样做的Python子集仍然有用.
它会提供任何速度和/或内存使用优势吗?据推测,Python解释器的启动时间将被消除(尽管共享库仍需要在启动时加载).
我编写了一个库,我曾经使用自编写的Makefile进行编译,但现在我想切换到cmake.树看起来像这样(我删除了所有不相关的文件):
.
??? include
? ??? animation.h
? ??? buffers.h
? ??? ...
? ??? vertex.h
? ??? world.h
??? src
??? animation.cpp
??? buffers.cpp
??? ...
??? vertex.cpp
??? world.cpp
Run Code Online (Sandbox Code Playgroud)
所以我要做的只是将源代码编译成共享库,然后使用头文件安装它.
我发现的大多数示例都使用一些共享库编译可执行文件,但从不只是一个普通的共享库.如果有人可以告诉我一个使用cmake的非常简单的库,那么我也可以使用它作为一个例子.
compilation ×10
c ×2
c# ×2
java ×2
linker ×2
angularjs ×1
build ×1
c++ ×1
cmake ×1
command-line ×1
dom ×1
dynamic ×1
go ×1
html ×1
linux ×1
object-files ×1
performance ×1
python ×1
windows ×1