我开始使用基于CI 2.0 Reactor存储库的新CI项目.因为CI2代码仍在变化,我想保持代码新鲜,问题是如何(使用Git).
对于非CI人员,CI2项目的基本结构如下所示:
system/
application/
index.php
...
Run Code Online (Sandbox Code Playgroud)
系统目录包含框架,index.php执行引导和应用程序包含我的项目.理想情况下,我想使用Git使index.php和系统文件夹保持最新.我想要遵守的另一件事是应用程序文件夹的名称.(您可以在index.php中更改应用程序文件夹的路径.)保持名称相同可以直接放入文件夹,然后离开.
我试图通过使用git子模块来实现这一点(见下文),但是子模块不允许您从目标存储库中指定目录.
git submodule add https://github.com/philsturgeon/codeigniter-reactor.git/code-igniter/system system
Run Code Online (Sandbox Code Playgroud)
任何线索我怎么能实现这一目标?
我的iPad应用程序与XML提要同步,在NSOperationQueue执行的NSOperation子类中运行同步.当它解析feed时,它会回调主线程performSelectorOnMainThread:withObject:waitUntilDone:来更新UI的各个部分,安排下载等.其中一些非常昂贵; 随着同步的进行,UI有时会在一两秒内无响应.
为了使UI更具响应性,我删除了使用performSelectorOnMainThread:withObject:waitUntilDone:支持直接调用来执行所有与同步相关的任务,包括更新UI.所以现在同步完全发生在NSOperationQueue创建的后台线程上.这似乎工作得很好,并且在同步期间UI更具响应性.
但是,我很抱歉以这种方式发布它.我在各个地方看到过一些人应该只更新主线程上的UI(例如参考AppKit).但我一直无法在文档中找到关于此主题的任何具体内容.
那么更新主线程上的UI有多重要?应用程序的哪些部分是线程安全的,哪些不是?是否有一个参考解释在NSOperation中执行什么是安全的,哪些应该只在iOS的主线程上执行?我真的在做一些不安全或容易崩溃的事情吗?
Heyo,
我已经编写了这个非常基本的主要功能来试验反汇编,还可以看到并希望了解更低层次的情况:
int main() {
return 6;
}
Run Code Online (Sandbox Code Playgroud)
使用gdb来disas main产生这个:
0x08048374 <main+0>: lea 0x4(%esp),%ecx
0x08048378 <main+4>: and $0xfffffff0,%esp
0x0804837b <main+7>: pushl -0x4(%ecx)
0x0804837e <main+10>: push %ebp
0x0804837f <main+11>: mov %esp,%ebp
0x08048381 <main+13>: push %ecx
0x08048382 <main+14>: mov $0x6,%eax
0x08048387 <main+19>: pop %ecx
0x08048388 <main+20>: pop %ebp
0x08048389 <main+21>: lea -0x4(%ecx),%esp
0x0804838c <main+24>: ret
Run Code Online (Sandbox Code Playgroud)
这是我最好的猜测,我认为正在发生什么以及我需要逐行帮助:
lea 0x4(%esp),%ecx
将esp + 4的地址加载到ecx中.为什么我们为esp添加4?
我在某处读到这是命令行参数的地址.但是当我这样做时,x/d $ecx我得到了argc的值.存储的实际命令行参数值在哪里?
and $0xfffffff0,%esp
对齐堆栈
pushl -0x4(%ecx)
将esp最初的地址推入堆栈.这样做的目的是什么?
push %ebp
将基指针推入堆栈
mov %esp,%ebp
将当前堆栈指针移动到基指针中
push %ecx …
我正在使用webpy framefork.我想在其中一个请求上提供静态文件.在webpy框架中是否有特殊方法或者我只需要读取并返回该文件?
如果操作系统与此有关,我在Ubuntu 10.10(64位)上使用g ++.我看到一些奇怪的东西所以我决定检查并出于某种原因这段代码
#include <iostream>
int main()
{
int a;
std::cout << a << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
总是打印0.显然,g ++会将未初始化的变量自动初始化为相应的空值.问题是我想要关闭这个功能,或者至少让g ++显示关于使用未初始化变量的警告,因为这样我的代码在VS上编译时将无法正常工作.除此之外,我非常确定C++标准规定一个未用某个值隐式初始化的变量在所有可能的值中都有一个未定义的值,实际上每次执行程序时都应该是不同的,因为它的不同部分每次执行时都会使用操作内存.
明确的问题:有没有办法让g ++显示未初始化变量的警告?
我有一个通过电子邮件发送到我的电子邮件地址的表单 除非有人将MS Word中的内容粘贴到表单中,否则一切正常.所有文本都通过,但撇号和双引号的编码都搞砸了.他们是奇怪的角色.
无论如何都可以轻松解决这个问题吗?
下面的代码提供了两种方法,它们生成总和小于100的整数对,并且它们根据它们与(0,0)的距离按降序排列.
//approach 1
private static IEnumerable<Tuple<int,int>> ProduceIndices3()
{
var storage = new List<Tuple<int, int>>();
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
if (x + y < 100)
storage.Add(Tuple.Create(x, y));
}
}
storage.Sort((p1,p2) =>
(p2.Item1 * p2.Item1 +
p2.Item2 * p2.Item2).CompareTo(
p1.Item1 * p1.Item1 +
p1.Item2 * p1.Item2));
return storage;
}
//approach 2
private static IEnumerable<Tuple<int, int>> QueryIndices3()
{
return from x in Enumerable.Range(0, 100)
from y in …Run Code Online (Sandbox Code Playgroud) 让我们比较两段代码:
String str = null;
//Possibly do something...
str = "Test";
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
和
String str;
//Possibly do something...
str = "Test";
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
我一直认为这些代码是相同的.但是在我构建这些代码(检查了优化的发布模式)并比较生成的IL方法后,我注意到第一个样本中还有两个IL指令:
第一个示例代码IL:
.maxstack 1
.locals init([0] string str)
IL_0000:ldnull
IL_0001:stloc.0
IL_0002:ldstr"Test"
IL_0007:stloc.0
IL_0008:ldloc.0
IL_0009:call void [mscorlib] System.Console :: WriteLine (字符串)
IL_000e:ret
第二个示例代码IL:
.maxstack 1
.locals init([0] string str)
IL_0000:ldstr"Test"
IL_0005:stloc.0
IL_0006:ldloc.0
IL_0007:call void [mscorlib] System.Console :: WriteLine(string)
IL_000c:ret
可能这个代码是由JIT compiller优化的?那么带有null的本地bethod变量的初始化会影响性能(我知道这是非常简单的操作,但无论如何)我们应该避免它吗?先谢谢.
可能重复:
在java中解析CSV
如何在java中正确解析csv文件?有些情况下,简单的StringTokenizer不起作用,如下例所示:
xxx,"hello, this breaks you"
Run Code Online (Sandbox Code Playgroud) 我正在运行Windows Phone 7模拟器/模拟器,我需要模拟双指捏合/缩放手势.有小费吗?
c# ×2
performance ×2
assembly ×1
c++ ×1
cocoa-touch ×1
codeigniter ×1
concurrency ×1
csv ×1
disassembly ×1
encoding ×1
g++ ×1
gdb ×1
git ×1
il ×1
ios ×1
java ×1
jit ×1
linux ×1
loops ×1
ms-word ×1
nsoperation ×1
php ×1
python ×1
uikit ×1
web.py ×1
x86 ×1