我有一个Git别名扩展为:
git log --graph --oneline --all --decorate
Run Code Online (Sandbox Code Playgroud)
根据man git log有几个可疑的选择:--not和--branches; 但我不能让它正常工作.
我应该如何编辑以隐藏藏匿处?
仅供参考:根据已接受的问题和评论,我的.gitconfig别名现在看起来像这样:
[alias]
l = log --branches --remotes --tags --graph --oneline --decorate --notes HEAD
Run Code Online (Sandbox Code Playgroud) 基本上我需要的是一种自动化以下操作结果的方法:
打开一个新标签;
在开发人员工具中打开"网络"选项卡;
加载URL;
选择"全部保存为HAR".
通常,建议的解决方案涉及使用PhantomJS,browsermob-proxy或pcap2har ; 那些不适合我的情况,因为我需要使用SPDY流量.
我试图深入研究谷歌Chrome扩展API,事实上我设法自动完成了一些任务,但对于生成HAR文件的问题仍然没有运气.现在这种方法特别有前景,但我仍然无法弄清楚如何使用它.
换句话说,我需要像这个实验从在谷歌的家伙.请注意以下事项:
我们使用Chrome的远程调试界面与自定义客户端启动手机上的浏览器,清除其缓存和其他状态,启动网页加载,并接收Chrome开发人员工具消息以确定页面加载时间和其他性能指标.
有任何想法吗?
对于好奇,我最终得到了一个Node.js模块,可以自动进行这种测试:chrome-har-capturer.这也使我有机会深入了解远程调试协议并为通用Chrome自动化编写更低级别的Node.js接口:chrome-remote-interface.
看一下我写的官方网站上的快速入门:
less.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet/less" type="text/css" href="style.less" />
<script src="less-1.1.3.min.js" type="text/javascript"></script>
</head>
<body>
<h1>foo</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
style.less
@color: red;
h1 {
color: @color;
}
Run Code Online (Sandbox Code Playgroud)
在本地,我得到的是(来自谷歌Chrome控制台):
XMLHttpRequest cannot load file:///home/cyrus/test/style.less. Cross origin requests are only supported for HTTP.
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
r
o
n
d.refresh
(anonymous function)
(anonymous function)
解决方法:
$ google-chrome -allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud) struct X {
X (int x) {}
};
int main() {
X x1(0); // nothing!
X x2 = 0; // warning: unused variable
X x3 = X(0); // warning: unused variable
}
Run Code Online (Sandbox Code Playgroud)
为什么没有生成警告x1?
我正在编译-Wall选项.
GCC和Clang都产生相同的输出.
这3行生成相同的汇编指令(asm("nop")为清楚起见放置一些):
nop
lea -0x8(%rbp),%rdi
mov $0x0,%esi
callq 400600 <X::X(int)>
nop
lea -0x10(%rbp),%rdi
mov $0x0,%esi
callq 400600 <X::X(int)>
nop
lea -0x18(%rbp),%rdi
mov $0x0,%esi
callq 400600 <X::X(int)>
nop
Run Code Online (Sandbox Code Playgroud)原始类型(例如,typedef int X)不会发生这种情况.
如果原因涉及构造函数中可能存在副作用的事实,则问题变为:为什么我会得到另外两个警告?
虽然我可以直观地得到大部分结果,但我很难完全理解perf report命令的输出,特别是对于调用图有什么关系,所以我写了一个愚蠢的测试,一劳永逸地解决了我的这个问题.
我编写了以下内容:
gcc -Wall -pedantic -lm perf-test.c -o perf-test
Run Code Online (Sandbox Code Playgroud)
没有积极的优化来避免内联等.
#include <math.h>
#define N 10000000UL
#define USELESSNESS(n) \
do { \
unsigned long i; \
double x = 42; \
for (i = 0; i < (n); i++) x = sin(x); \
} while (0)
void baz()
{
USELESSNESS(N);
}
void bar()
{
USELESSNESS(2 * N);
baz();
}
void foo()
{
USELESSNESS(3 * N);
bar();
baz();
}
int main()
{
foo();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
perf …Run Code Online (Sandbox Code Playgroud) 我正在为一个项目使用GCC SIMD向量扩展,一切都很好但是转换,它们只是重置向量的所有组件.
在手动状态:
可以从一种向量类型转换为另一种向量类型,前提是它们具有相同的大小(实际上,您也可以将向量转换为相同大小的其他数据类型).
这是一个简单的例子:
#include <stdio.h>
typedef int int4 __attribute__ (( vector_size( sizeof( int ) * 4 ) ));
typedef float float4 __attribute__ (( vector_size( sizeof( float ) * 4 ) ));
int main()
{
int4 i = { 1 , 2 , 3 , 4 };
float4 f = { 0.1 , 0.2 , 0.3 , 0.4 };
printf( "%i %i %i %i\n" , i[0] , i[1] , i[2] , i[3] );
printf( "%f %f %f …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Jetty在SPDY服务器上设置最小的HTTP ,以进行测试.我正在研究这段代码:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.spdy.http.HTTPSPDYServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class MySPDYHelloServer {
public static void main(String[] args) throws Exception {
Server server = new Server();
SslContextFactory sslFactory = new SslContextFactory();
sslFactory.setKeyStorePath("dummy_keystore.jks");
sslFactory.setKeyStorePassword("password");
sslFactory.setProtocol("TLSv1");
Connector connector = new HTTPSPDYServerConnector(sslFactory);
connector.setPort(8443);
server.addConnector(connector);
server.setHandler( new AbstractHandler(){
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>Hello World</h1>");
}
} …Run Code Online (Sandbox Code Playgroud) 如果客户端关闭浏览器(因此连接到服务器),为什么这个虚拟脚本会继续运行事件?
while ( true )
{
sleep( 1 );
file_put_contents( '/tmp/foo' , "I'm alive ".getmypid()."\n" , FILE_APPEND );
}
而使用非零参数的set_time_limit什么都不做.
我想澄清一下.
我尝试了这个虚拟的例子:
cmake_minimum_required( VERSION 2.8 )
project( testcmake )
add_custom_command(
OUTPUT testcmake.h
COMMAND xxd -i testcmake.txt testcmake.h
DEPENDS testcmake.txt
)
add_executable( testcmake testcmake.c testcmake.h )
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
#include "testcmake.h"
int main()
{
int i;
for ( i = 0 ; i < testcmake_txt_len ; i++ )
{
fputc( testcmake_txt[ i ] , stdout );
}
}
Run Code Online (Sandbox Code Playgroud)
foo
bar
baz
Run Code Online (Sandbox Code Playgroud)
它失败了:
[...]
xxd: testcmake.txt: No such file or directory
[...]
Run Code Online (Sandbox Code Playgroud)
添加WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}使一切正常但我不希望我的自定义命令的输出出现在我的源目录中,我希望所有中间文件保留在CMake构建目录中,就像任何非自定义规则一样.
$x = sprintf( "foo\x00bar\x00baz" );
$y = unpack( 'afoo/abar/abaz' , $x );
print_r( $y );
Run Code Online (Sandbox Code Playgroud)
$x = sprintf( "foo\x00bar\x00baz" );
$y = unpack( 'a*foo/a*bar/a*baz' , $x );
print_r( $y );
Run Code Online (Sandbox Code Playgroud)
Array
(
[foo] => f
[bar] => o
[baz] => o
)
Array
(
[foo] => foobarbaz
[bar] =>
[baz] =>
)
请注意,NULL字节始终存在,您可以使用它进行检查hexdump.
Array
(
[foo] => foo
[bar] => bar
[baz] => baz
)
我知道我可以explode用来达到类似的效果.我不是要求替代方案,我只是想了解a格式字符背后的逻辑(正如文档所说的那样"NUL-padded string").
"NULL"值在哪里参与了所有这些?