这个问题在这里列出了一些与一般Android应用程序的良好链接(我已经看过了),但我对特定游戏中的那一刻感兴趣(板式,智能游戏而不是动作 - 换句话说,我不知道需要实时).
这类应用程序的最佳来源是什么?我想查看源代码,让自己快速上手.
(请不要只是谷歌的结果,我已经做到了,选择有点稀缺.我对任何实际花时间寻找和评估好网站的人感兴趣 - 所以理想情况下,你已经是一名有兴趣开发游戏的Android开发者.
我正在尝试编写一个awk脚本来检查某些条件并丢弃符合这些条件的行.
具体条件是丢弃文件的前两行以及以文本开头的任何行xyzzy:.为此,我编写了:
awk '
NR < 2 {}
/^xyzzy:/ {}
{print}'
Run Code Online (Sandbox Code Playgroud)
我认为它会丢掉满足这两个条件之一的线条,否则就会打印出来.
不幸的是,print即使该线与其他两种模式中的一种相匹配,它似乎也在被处理.
是否有类似C的continue动作将在下一行移动而忽略当前行的所有其他条件检查?
我想我可以使用类似((NR > 1) && (!/^xyzzy:/)) {print}第三条规则的东西,但这对我来说似乎相当难看.
或者,还有另一种方法吗?
我需要创建一个计算两点之间距离的类.我被困了,我是一个初学者.这是我的课程:
package org.totalbeginner.tutorial;
public class Point {
public double x;
public double y;
Point(double xcoord, double ycoord){
this.x = xcoord;
this.y = ycoord;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
}
Run Code Online (Sandbox Code Playgroud)
第二节课.
package org.totalbeginner.tutorial;
public class Line {
double x;
double y;
Point p1 = new Point(2.0,2.0);
Point p2 = new Point(4.0,4.0);
Point mp = new Point(x,y);
public void midpoint() {
x = (p1.getX() + p2.getX()) / 2;
y = (p1.getY() + …Run Code Online (Sandbox Code Playgroud) len: equ 2
len: db 2
Run Code Online (Sandbox Code Playgroud)
它们是否相同,产生的标签可以代替2?如果没有,那么每份申报表的优缺点是什么?它们可以互换使用吗?
我有一些非常大的日志文件,我需要解析它们.易于实现显然指向Perl和regex组合(我仍然是新手).但速度怎么样?在C中实现它会更快吗?每个日志文件大约为2 GB.
我要求(非常)快速处理有限范围的字符串,统计它们的值.输入文件的格式如下:
January 7
March 22
September 87
March 36
Run Code Online (Sandbox Code Playgroud)
等等.因为线宽是相同的,所以我可以简单fread快速地阅读一行,并且我开发了一个完美的散列函数,但是我想知道是否有人可以提供任何关于如何使它更快的建议.我将介绍每个建议,看看它是怎么回事.
散列函数基于月份名称,以允许将值快速分配给存储桶.跟我来这儿.我首先想出了完美哈希的最小字符数:
January
February
March
April
May
June
July
August
September
October
November
December
Run Code Online (Sandbox Code Playgroud)
请记住,月是所有九个字符由于我拥有整个输入线.
不幸的是,没有一个列标记一个月的唯一.第1列重复J,第2列重复a,第3列重复r,第4列重复u,第5列向前复制<space>(还有其他重复但有一个足以阻止单列散列键).
但是,通过使用第一和第四列,我得到的值Ju,Fr,Mc,Ai,M<space>,Je,Jy,Au,St,Oo,Ne和De,这是独一无二的.此文件中没有无效值,因此我不必担心输入数据的存储桶不正确.
通过查看字符的十六进制代码,我发现通过与策略值进行AND运算可以获得较低的唯一值:
FirstChar Hex Binary &0x0f
--------- --- --------- -----
A x41 0100 0001 1 …Run Code Online (Sandbox Code Playgroud) 段7.9.13/7的c99规定:
在程序启动时,预定义了三个文本流,无需明确打开 - 标准输入(用于读取传统输入),标准输出(用于写入常规输出)和标准错误(用于写入诊断输出).
最初打开时,标准错误流未完全缓冲; 当且仅当可以确定流不参考交互设备时,标准输入和标准输出流被完全缓冲.
这是有道理的.如果您将标准输出推送到文件,则需要将其完全缓冲以提高效率.
但是,当你无法确定设备是非交互式的(即正常输出到终端)时,我在标准中没有提到输出是线路缓冲还是无缓冲.
我问的原因是我在这里回答我应该fflush(stdout);在两个陈述之间插入一个:
printf ("Enter number> ");
// fflush (stdout); needed ?
if (fgets (buff, sizeof(buff), stdin) == NULL) { ... }
Run Code Online (Sandbox Code Playgroud)
因为我没有printf用换行符终止.任何人都可以清除这个吗?
我们有一些软件依赖于另一个(非常常用的)应用程序的某些行为,这些应用程序现在已经改变,使我们当前的实现可行,但不是最佳.
我们认为这种变化可能会影响其他一些应用,特别是在性能监控领域,我们已经找到了一种解决方案,我们相信这将改善一系列其他潜在问题.
不幸的是,所述解决方案是内核更改(相对简单但影响很大,如果我们填充它)并且我们没有提交内核补丁进行审核的经验.
有没有人在SO上提交了一个补丁(虽然我很欣赏所有的答案,我怀疑最好的答案会来自那些已经完成整个过程的人,甚至没有成功)?你有没有接受过(Alan Cox等人在SO上有什么机会)?
正确的流程是什么?我无意向Linus发送一封电子邮件,因为我知道他有一群保护者,你应该在他到达之前经过这些保护.我如何找出谁负责内核的特定部分.
我可能会过于乐观地认为某个内核世界从未听说过可以做出贡献,但我有兴趣了解一下.
编辑更多细节:
这个更改实际上并不是针对性能错误,而是对进程终止时编写的进程记帐条目(当前)的改进(在我看来).
Websphere App Server(啊,IBM,祝福他们的小心灵)改变了它的作用; JVM过去经常退出以便他们的条目被写入,我们可以使用它进行退款.现在它让JVM闲置数月,这意味着数据无法及时获得,除非我们定期强制关闭WAS.不知怎的,我不认为IBM软件集团会为我们修复他们的软件:-).无论如何,我相信它对于其他长期存在的过程可能是一个有用的特性.
当前进程退出时会写入类型3进程记帐记录,我们正在查看的是一种在进程仍然处于活动状态时定期写入N类记录的机制,给出自上次写入以来的数据(如果这是第一次).退款或性能监控应用程序可以选择使用类型3记录(完全不变)或临时类型N记录.我们目前的解决方法是监控特定流程的/ proc/PID/stat,但这是一个可怕的问题,因为它与实际流程会计不能很好地集成.
它不需要经常(我们会对24小时感到满意),但可能会产生性能影响,因为目前仅在流程exit()上完成的工作必须偶尔在流程上下文切换时完成.Linus等人可能不喜欢这个想法,因为它可能是代码的高影响区域(甚至检查自上次写入以来是否已经24小时对他们来说可能太慢).
不过,感谢到目前为止的所有答案,我会看到我如何去.给我几天,我会接受最好的答案.
我很难找到一种更好的方法来搜索MySQL中表中的一对值.我有一个数组中的值对,并希望复制IN()函数,但超过1个值.
例如,目的; 我有以下3对:
foo,1
boo,2
goo,3
Run Code Online (Sandbox Code Playgroud)
目前的解决方案让我:
SELECT * FROM [table] WHERE
(column1 = 'foo' AND column2 = 1) OR
(column1 = 'boo' AND column2 = 2) OR
(column1 = 'goo' AND column2 = 3);
Run Code Online (Sandbox Code Playgroud)
我想有一个更"性感"的解决方案,看到我可以有多达一百对,并且可能有些让我感到恶心.谢谢!!!