使用这个简单的例子,我遇到了"ClassNotFound"异常的问题:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import java.net.URLClassLoader
import scala.util.Marshal
class ClassToRoundTrip(val id: Int) extends scala.Serializable {
}
object RoundTripTester {
def test(id : Int) : ClassToRoundTrip = {
// Get the current classpath and output. Can we see simpleapp jar?
val cl = ClassLoader.getSystemClassLoader
val urls = cl.asInstanceOf[URLClassLoader].getURLs
urls.foreach(url => println("Executor classpath is:" + url.getFile))
// Simply instantiating an instance of object and using it works fine.
val testObj = new ClassToRoundTrip(id)
println("testObj.id: " + testObj.id)
val testObjBytes …Run Code Online (Sandbox Code Playgroud) 我目前正在使用GCC为QNX(x86)开发一个库,我想制作一些在库中专用的符号,对其他模块是不可见的,特别是对使用该库的代码.
这已经有了,但是,在研究如何实现它时,我在GCC的文档中找到了一个非常令人担忧的段落(参见http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Code-Gen -Options.html#Code-Gen-Options,flag -fvisibility的解释):
尽管有命名法,但默认总是意味着公开; 即,可以从共享对象外部链接.protected和internal在实际使用中相当无用,因此隐藏了唯一的其他常用选项.默认情况下if -fvisibility未指定为默认值,即将每个符号设为公共 - 这会导致与以前版本的GCC相同的行为.
我对"内部"在实际使用中的可见性非常感兴趣.从我从GCC文档的另一篇文章(http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Function-Attributes.html#Function-Attributes,可见性属性的解释)中了解到的,可见性"内部"甚至比"隐藏"的可见性更强(对我来说更有用):
内部可见性就像隐藏的可见性,但具有额外的处理器特定语义.除非psABI另有规定,否则GCC定义内部可见性意味着永远不会从另一个模块调用函数.将其与隐藏函数进行比较,隐藏函数虽然不能被其他模块直接引用,但可以通过函数指针间接引用.通过指示不能从模块外部调用函数,GCC可以例如省略PIC寄存器的加载,因为已知调用函数加载了正确的值.
任何人都可以深入解释一下吗?
我是否需要一个extern "C" {}块来在C++程序中包含标准C头.只考虑在C++中没有对应项的标准C头.
例如:
extern "C" {
#include <fcntl.h>
#include <unistd.h>
}
Run Code Online (Sandbox Code Playgroud) 为什么u下面的程序总是无限?
#include <random>
#include <limits>
int main()
{
auto seed = std::random_device()();
std::mt19937 randomEngine(seed);
const double lo = std::numeric_limits<double>::lowest(); // ~= -1.8e+308
const double hi = std::numeric_limits<double>::max(); // ~= 1.8e+308
std::uniform_real_distribution<> U(lo, hi);
double u = U(randomEngine); // always 1.#INF000000000000
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这显然与传递的范围有关std::uniform_real_distribution.如果我通过它(lo,0)或(0,hi)它产生有限的随机数,但为什么?
今天我is在Python中学习了关键字,并尝试了以下方法:
>>> x=2+2
>>> y=4
>>> x is y
True
Run Code Online (Sandbox Code Playgroud)
我开始尝试is整数,因为我知道答案是False- 所以我发现结果非常令人惊讶!为了给出一些上下文,我的背景是C++和C#,其中值类型和对象类型之间存在区别.在Python中,正如我现在所知,一切都是引用类型.
看来,原因x is y是True是因为在这个问题解释的一样,怎么是"是"用Python实现关键字?,与使用is字符串有关.即运行时环境通过共享或"实际"整数来保存内存,就像它对字符串一样 - 这在问题的答案中有更详细的解释:Python"is"运算符在我初始化后发现的整数表现出乎意料帖子.
我发现令人惊讶的另一件事是is返回的值是依赖于实现的.这与我的主要问题有关.在引用的关于iswrt字符串实现的问题中,有一些关于何时使用的讨论is,有几个用户表示他们(几乎)从不使用它.所以我的问题是,什么时候应该使用is关键字?什么是规范示例或一般规则?
我的错误是:
1>------ Build started: Project: alglibTest, Configuration: Debug Win32 ------
1>Build started 5/22/2011 12:52:26 PM.
1>InitializeBuildStatus:
1> Touching "Debug\alglibTest.unsuccessfulbuild".
1>ClCompile:
1> main.cpp
1>c:\program files\microsoft visual studio 10.0\vc\include\cstdio(38): error C2054: expected '(' to follow 'using'
1>c:\program files\microsoft visual studio 10.0\vc\include\cstdio(40): error C2061: syntax error : identifier 'using'
1>c:\program files\microsoft visual studio 10.0\vc\include\cstdio(40): error C2054: expected '(' to follow 'using'
1>c:\program files\microsoft visual studio 10.0\vc\include\cstdio(40): error C2061: syntax error : identifier 'using'
1>c:\program files\microsoft visual studio 10.0\vc\include\cstdio(41): error C2061: syntax error : …Run Code Online (Sandbox Code Playgroud) 这让我在C#中遇到过一两次.我可以写这样的代码
class Node
{
class Connection
{
public Connection(Node node, string label)
{
this.Node = node;
this.Label = label;
}
public Node Node { get; private set; }
public string Label { get; private set; }
};
IEnumerable<Connection> IncomingConnections() // ...
IEnumerable<Connection> OutgoingConnections() // ...
}
Run Code Online (Sandbox Code Playgroud)
但如果我写
interface INode
{
class Connection
{
public Connection(INode node, string label)
{
this.Node = node;
this.Label = label;
}
public INode Node { get; private set; }
public string Label { get; private …Run Code Online (Sandbox Code Playgroud) 财务软件公司对程序员职位的面试问题
Q1)假设您有一个数组,其中第i个元素是第i天给定股票的价格.
如果您只被允许购买一股股票并卖出一股股票,那么设计一种算法来寻找买卖的最佳时机.
我的解决方案:我的解决方案是在第一天和第i + 1天之间为阵列化1天制作一系列股票价格差异,然后使用Kadane算法返回最大连续子阵列的总和.然后我会购买最大的连续阵列的开始,并在最大的连续阵列的末尾出售.
我想知道我的解决方案是否正确,那里有更好的解决方案吗?
在回答时,我被问到一个跟进问题,我回答的问题完全相同
Q2)鉴于您知道未来10天公司x的未来收盘价,设计一个算法以确定您是否应该每天购买,出售或持有(您每天只能做出1个决定)最大化利润的目的
例如:第1天收盘价:2.24
第2天收盘价:2.11
......
第10天收盘价:3.00
我的解决方案:与上述相同
我想知道如果有更好的算法可以获得最大利润,因为我可以每天做出决定
我刚刚在Windows上安装了PyPy,并且在我运行的一些模拟代码中看到了大约10倍的速度提升.我也希望看到使用numpy的代码类似.我不是一个经验丰富的Python程序员,但我发现很难遵循这些说明.有没有人知道如果在Windows上为PyPy安装numpy是可能的,如果是这样,最简单的方法是什么?
说明提供了两个选项.
选项1
如果你有pip(命令行假定它找到属于PyPy的pip,而不是CPython中的pip):
pip install git+https://bitbucket.org/pypy/numpy.git
Run Code Online (Sandbox Code Playgroud)
这似乎是一个很好的选择,但我pip在目录结构中找不到我解压缩.
选项2
或者,直接的方式:
git clone https://bitbucket.org/pypy/numpy.git
cd numpy
pypy setup.py install
Run Code Online (Sandbox Code Playgroud)
我没有登录gitWindows,但我也怀疑这个选项可能涉及从Windows编译源代码https://bitbucket.org/pypy/numpy.git,甚至可能无法(或需要大量黑客攻击).
编辑
通过安装PIP https://sites.google.com/site/pydatalog/python/pip-for-windows按照下面的答案,或在说明这个答案的问题,我如何在Windows上安装PIP?,失败了ConnectionError: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /packages/py2.py3/p/pip/pip-1.5.4-py2.py3-none-any.whl (Caused by <class 'httplib.BadStatusLine'>: '').例如,参见此错误报告.不过,我是能够通过微软的Visual Studio安装PIP PTVS通过右键单击在Solution Explorer中的Python环境PyPy 2.7,选择安装Python包.这无法安装numpy(另一个连接错误),但确实安装了pip.
现在我有了pip,我尝试使用命令行安装numpy pip install git+https://bitbucket.org/pypy/numpy.git.首先我需要安装git才能做到这一点......没问题.但随后它失败了以下
building library "npymath" sources
No module named numpy.distutils.msvccompiler in numpy.distutils; …Run Code Online (Sandbox Code Playgroud) 我有一个大型项目,我已经实现了预编译头.我也希望能够使用distcc.根据谷歌的编码纸4.12节在这里
gcc版本3.3包含一些性能改进,使得distcc不那么直接有用.
一个是预编译头,在读取一组公共头文件后,编译器的内部状态被转储到磁盘.这对于包含大量固定标头集的程序非常有用,其中解析标头占用了大部分编译时间.目前,distcc可以通过将.pch状态文件放在共享文件系统上来支持这一点.未来可能会为distcc添加更好的解决方案.
我不认为使用共享文件系统对我来说是一个很好的解决方案.但后来也提到了一个潜在的补丁,可以更好地将预编译的头文件和distcc一起工作:https://lists.samba.org/archive/distcc/2008q2/003646.html.这将涉及DISTCC_PCH在客户端上设置(或使用编译器选项-fpch-preprocess,请参见此处),并将pch选项添加到DISTCC_HOSTS服务器.我试过这个,但它似乎没有用,所以我怀疑补丁没有集成.
在共享文件系统之上和之上是否支持distcc中的预编译头文件?或者让技术合作的任何合理直接的方式?
更新:我现在有一种情况,我使用预编译头编译为本地构建和distcc构建我强制包括预编译头文件,以便本地和distcc构建两个编译完全相同的源.通过仔细选择预编译头文件,我可以获得比以前快40%的本地调试版本,而distcc构建只会慢大约4%.我希望以某种方式结合预编译的头文件和distcc以获得加速,比如10%或20%,使用distcc构建,只需要相当少的努力和侵入性(加速构建不是我的主要责任,除了在企业环境我能做的事情有限.